99 lines
15 KiB
Markdown
99 lines
15 KiB
Markdown
---
|
||
name: skill-harvest-register-proposed-skills-awaiting-steward-authorization
|
||
description: Standing register of skill create/patch/retire proposals surfaced by
|
||
/wrap-up §1.6, awaiting steward authorization. The governed analog of PENDING.md,
|
||
turned on our own tooling — propose → authorize → build → record. Surfaced every
|
||
wake via this MEMORY entry.
|
||
metadata:
|
||
node_type: memory
|
||
type: reference
|
||
originSessionId: a8eb1d46-314e-4545-a133-f747c69ad5b4
|
||
permalink: claude-memory/skill-harvest-register
|
||
---
|
||
|
||
# Skill-harvest register
|
||
|
||
The single place proposed skills live so they don't evaporate between sessions. `/wrap-up` §1.6 *proposes* here; the steward *authorizes*; only then is a skill created/patched/retired (never autonomously — the loop is load-bearing, per PENDING-23). `/wake-up` surfaces the open proposals via this entry. The governed analog of `~/PENDING.md`, for our own tools.
|
||
|
||
**Status legend:** `PROPOSED` (awaiting steward) · `AUTHORIZED` (proceed to build) · `BUILT` (done; move to the built-log) · `DEFERRED` (reason + condition) · `REJECTED` (reason; don't revisit without new input).
|
||
|
||
## Open proposals
|
||
|
||
*Full review with steward 2026-06-05 (housekeeping session) — every item ruled, evidence-checked against the KG drift/built record. Verdicts below.*
|
||
|
||
| Skill | Kind | One-line | Origin | Status |
|
||
|-------|------|----------|--------|--------|
|
||
| `/spec-code-audit` | create | Audit live code against a spec-contract section clause-by-clause; classify each gap; deliverable = gap-map. | 2026-05-29 | **BUILT 2026-06-07** — deferral condition met from the ARC direction (Seb's completeness question revived the justification; steward authorized build-from-this-run). Generalizes the four-pass bidirectional method proven on the full ARC audit (`_audits/spec-code-full-audit-2026-06-07.md`: 172 findings, 66-agent fan-out, adversarial refutation, 2 kills). Skill at `~/.claude/skills/spec-code-audit/`. Serves L1's first spec-vs-code audit as originally intended. |
|
||
| `bmf-diagnose` | create | N6 `EXPLAIN`-first root-cause method for L1/BMF storage pathologies. | 2026-05-27 | **AUTHORIZED 2026-06-05** (build at next L1 diagnostic need). |
|
||
| `mempalace-diagnose` (was `mcp-drop-diagnose`) | create | Upstream-issue-first method for MemPalace/MCP failures (proved on #1495; HNSW quarantine + search errors 2026-06-05). | 2026-06-02 | **AUTHORIZED 2026-06-05**. *Merge with bmf-diagnose RETRACTED same evening* — the merge was itself the MemPalace≠BMF conflation (steward's 3rd correction): one substrate we build, one we merely use. Two skills, two names. |
|
||
| `/pre-build-audit` | create | The four-pass *scope-claimed-vs-scope-tested per claim, with substrate evidence* discipline. | 2026-05-28 | **AUTHORIZED 2026-06-05**, build-on-next-big-build (cascade Stage 2 / vignette Phase 1 / L1). |
|
||
| `/vignette` | create | Phase-α vignette genome generation under Symmetria. | 2026-05-28 | DEFERRED (until vignette Phase 2) — condition unchanged, re-confirmed 2026-06-05. |
|
||
|
||
## Built / authorized (lineage — for context, not action)
|
||
|
||
- `/landscape-scan` + `/tooling-scan` (the scan-skill family, per-workstream lens cards) — built + in use (2026-05-27).
|
||
- `/wrap-up` §1.6 skill-harvest step + `/wake-up` §2.a/§3 glance — the practice itself (PENDING-23, 2026-05-27).
|
||
- Chaîne-d'union clasp across wake / Symmetria / wrap (2026-05-26).
|
||
- `/wrap-up` §4.0 — MemPalace liveness-ping-before-diary; steward-authorized + applied (2026-06-02; #1495 cold-start drop resilience, so a silent drop never eats the wrap filing).
|
||
- `/wrap-up` §6.5 dotfiles session-state commit+push (scoped add, session-stamped message, preservation-not-modification boundary) + `/wake-up` §2.c read-only push-check — steward-proposed and authorized conversationally, built same session (2026-06-05 housekeeping). Closes the governance-state single-disk latency that `sysupdate`'s calendar cadence left open; sysupdate keeps the catch-all sweep + Brewfile dump.
|
||
- **Symmetria §3 — two flags added** (2026-06-05, authorized + built same evening): *trust-prior-pass-frame* (frame-inheritance from prior verification into untested domain) + *census-through-truncation* (count first, then look). Closes the long-standing §3 patch proposal.
|
||
- **`reference-verification-ladder.md`** (2026-06-05, authorized + built same evening): one canonical home for the proven instruments (byte-identical compile gate, expected-delta/delta-classification, censused-routes, measure-toolchain-before-spec, compiled-selector grep, governed-char byte gate, WCAG compute, fresh-clone gate, live-fetch gate, per-type×per-viewport, re-verify-at-extension-scope). Ends the per-wrap re-proposing; future instruments append there, not here.
|
||
- **`/arc-typeset` REJECTED** (2026-06-05): superseded — §I.k.b/c moved the mechanical pass into the build; LINT class carries judgment warnings; multilingual §2.5 carries authoring notes; `french-typography-pass` covers the French preparation layer. Do not re-propose without a new gap.
|
||
|
||
## Candidate patches not yet proposed (watch-list)
|
||
|
||
- ~~Register wiring (authorized 2026-05-29)~~ — **APPLIED 2026-06-05 (evening wrap)**: wrap §1.6 now appends here; wake §2.a now reads here. Provenance notes in both skills.
|
||
- A Symmetria §3 flag for `verify-counts-two-ways` / mechanical-sweeps-finicky (saved as `feedback-verify-counts-two-ways.md`; may graduate to a flag if it recurs).
|
||
|
||
## New proposals (2026-06-06 wrap — awaiting steward)
|
||
|
||
| Skill | Kind | One-line | Origin | Status |
|
||
|-------|------|----------|--------|--------|
|
||
| `bmf-diagnose` | **build now** (already AUTHORIZED 2026-06-05 "at next L1 diagnostic need") | Today WAS that need and the method is proven+fresh: process sample → log pattern census (`uniq -c` histogram) → SIGUSR1→CDP CPU profile (working script at `/tmp/profile-mindfabric.mjs` — fold in before /tmp clears) → read-only SQLite census (`?mode=ro` URI) → evidence preservation to `l1-reliability/evidence/` → restart-with-capture. Hand-derived today over ~2h; the skill carries it next time in minutes. | 2026-06-06 mindfabric-00 forensics | PROPOSED (build, not authorize — authorization exists) |
|
||
|
||
## New proposals (2026-06-05 evening wrap — awaiting steward)
|
||
|
||
| Skill | Kind | One-line | Origin | Status |
|
||
|-------|------|----------|--------|--------|
|
||
| `/wrap-up` §5 | patch | **Palace-fully-derived, part 1:** mirror every `kg_add`/`kg_invalidate` made at wrap into the session memory file (one line each), so KG facts — the last palace-only data — become file-backed and the palace becomes wholly disposable/rebuildable. | 2026-06-05 MemPalace forensics + tooling scan part (b) | PROPOSED |
|
||
| `/wake-up` §2.b | patch | Until upstream #1665 closes: wake searches run **unscoped + post-filter by wing** (wing-scoped `mempalace_search` errors at HEAD). Remove when the feedback memory `feedback-mempalace-wing-filter-broken` is deleted. | 2026-06-05 diagnosis | PROPOSED |
|
||
| `/wake-up` (new step or §2 check) | patch | **Wake canary**: seconds-cheap probe at wake — every MEMORY.md pointer + `[[link]]` resolves to an existing memory file; flag dead pointers and load-bearing orphans. Lesson 7 of substrate-failure-lessons-2026-06-07 (BM false-clean sync) applied to our own index, which the harness already part-loads with a warning. | 2026-06-07 evening (memory-verdicts night) | PROPOSED |
|
||
|
||
## New proposals (2026-06-08 — harvested from Fowler, *Refactoring* 2nd ed. chs 1–3, awaiting steward)
|
||
|
||
*Read in the Chamber before Wave 3R. Three elements are genuinely NEW to our toolkit (not already carried by the verification ladder / Symmetria); two more are heuristics worth a feedback memory. Proposing the new ones; flagging where each would land on authorization.*
|
||
|
||
| Element | Kind | One-line | Where it lands | Status |
|
||
|---------|------|----------|----------------|--------|
|
||
| **Revert-and-redo-smaller** | Symmetria §3 flag OR ladder note | Ch1's strongest working reflex we *don't* have: when a verification/gate fails and the cause isn't immediately visible, **revert to the last green commit and redo the step smaller** — do NOT debug forward. We default to debug-forward; this is a different reflex, and it depends on commit-after-every-green (which we already do via the byte-identical gate). | Symmetria §3 (a flag) or verification-ladder (a named discipline) | PROPOSED |
|
||
| **Two-hat commit separation** | verification-ladder entry | Name which hat each commit wears: a *refactor* commit's compiled output is byte-identical (or carries a pre-stated classified delta); a *feature/behaviour* commit is where rendered values change. We already own the byte-identical gate + delta-classification — this names the **commit-level rule** that pairs them ("never mix a structural move and a value change in one step"). The ARC `@layer` re-partition is the textbook case. | verification-ladder (formalizes what the byte-gate implies) | PROPOSED |
|
||
| **Bad-smells → refactoring lens** | reference card OR fold into `/code-review` | Ch3's smell catalogue (Mutable/Global Data, Duplicated Code, Shotgun Surgery, Speculative Generality, Comments-as-deodorant…) as an explicit review lens. Today it classified the `!important` census cleanly (global-data smell → `@layer`). Likely too large for a new skill; candidate to fold into `/code-review`'s prompt or a one-page reference beside the ladder. | `/code-review` prompt or new reference | PROPOSED (lowest priority — may be redundant with existing review skill) |
|
||
|
||
**Heuristics (feedback-memory candidates, no skill needed):**
|
||
- **Rule of Three** (ch2): first time do it, second wince, third refactor. Defer abstraction to the third repetition.
|
||
- **Preparatory refactoring** (ch2, Kent Beck): *"make the change easy (warning: this may be hard), then make the easy change."* The framing for sequencing Wave 3R *before* Stage G — Jessica Kerr's "drive north to the highway."
|
||
|
||
*Note: measure-don't-speculate (ch2 date-range story) is NOT proposed — already carried by the ladder (censused-routes, measure-toolchain-before-spec). Today's census re-proved it; no new instrument needed.*
|
||
|
||
## New proposals (2026-06-08 evening — the tree + the memory-index archive pass)
|
||
|
||
**Verification-ladder additions (the session proved both; → `reference-verification-ladder.md`):**
|
||
- **content-multiset-identity gate (file-split/extraction under @layer)** — when a refactor *moves rules between partials* (not just reorders one), the byte-identical compile gate FAILS: each new partial adds a legitimate `@layer base { }` wrapper. The correct proof: strip `@layer …{` openers and lone `}` lines, sort, diff → identical content-multiset proves no rule changed/added/dropped while the wrapper count differs as expected. Proven 5× (the `_utilities` dissolution). PROPOSED.
|
||
- **CAUTION: property-name-exact collision measures miss shorthand↔longhand + cross-selector-same-specificity** — the `.ornament` margin flip (`margin` shorthand vs `margin-top/bottom` longhand) was invisible to the automated `/tmp/collide.py`; only the source-read caught it. The automated census is the floor; the per-move render gate is the guarantor (byte-identical≠rendered-identical, one layer down). PROPOSED.
|
||
|
||
**Memory-index (MEMORY.md) — the archive pass + the durable fixes:**
|
||
- **DONE 2026-06-08 (steward-authorized, live): compress-in-place archive pass.** 90 archived-session bullets compressed to one-line pointers (detail preserved in the session files), **285KB→157KB**, all 239 pointers preserved, every load-bearing section byte-identical; backup `/tmp/MEMORY.md.bak`. ⚠ A naive split-at-first-`## Archived` was **caught-and-avoided** — the file is INTERLEAVED (archived blocks scattered among load-bearing reference sections: Pending work / Feedback / Drift patterns / ARC project state / CapableMind L1 / Personal Context / Reference Files). Surgical compression of only archived bullets is the correct tool for an interleaved index.
|
||
- **[PATCH proposal] `/wrap-up` §3 — compress at demotion.** When demoting Active Session → Archived, compress the entry to a one-liner in the *same move* (it's already in the session file). Prevents index re-bloat at the source — without it the index re-grows ~4–5KB/session and this pass recurs.
|
||
- **[PROPOSAL] deeper MEMORY.md reduction (only if 157KB still trips "only part loaded").** The load-bearing REFERENCE sections (steward profile / project states / ARC project state / CapableMind L1 / Reference Files) are large but largely STABLE — candidate to move to a consult-on-demand `MEMORY-reference.md`, leaving the wake-loaded MEMORY.md = standing prefs + trackers + Active Session + recent. Riskier (real memory, not duplication); its own focused pass, not a tail-of-session move.
|
||
- **[reminder] the wake-canary** (PROPOSED 2026-06-07, above) still awaits authorization — the paired guardrail (every MEMORY.md pointer + `[[link]]` resolves at wake); should cover MEMORY.md + any future archive/reference split files.
|
||
|
||
## New proposals (2026-06-09 — the headless-Chrome measurement harness, awaiting steward)
|
||
|
||
| Element | Kind | One-line | Where it lands | Status |
|
||
|---------|------|----------|----------------|--------|
|
||
| **Headless-Chrome box-model measurement** | create skill OR verification-ladder note | When a rendered layout *differs* and the cause isn't obvious, **measure the box model before theorizing the mechanism**. Today this caught the phone-compass cause (per-point *padding asymmetry*, not width) after *causal-story-before-reading-render* recurred 2× (a footer-only first pass, then a wrong `align-self:stretch` width-fix). Reusable core: `npm i puppeteer-core` in a tmp dir · `executablePath` = `/Applications/Google Chrome.app/...` · `setViewport({width:375,…,isMobile:true})` · `page.evaluate` reading `getComputedStyle`/`getBoundingClientRect` (widths, padding, row counts). Chrome reproduced the bug → it wasn't the Safari quirk I'd hypothesized. | a `/measure-render` skill, or a verification-ladder entry ("measure the box model before theorizing a layout difference") | **PROPOSED** |
|
||
| **Symmetria §3 flag: theorize-before-measuring-a-layout** | Symmetria §3 flag | The drift this caught, as a standing flag: a *causal story about why a layout renders as it does*, asserted before the rendered box model is measured, is contamination shape (same family as `causal-story-before-reading-render`, one step more specific — layout/CSS). Antidote: the harness above. | Symmetria §3 | **PROPOSED** (may be redundant with the existing `causal-story-before-reading-render` flag — steward to judge) |
|
||
|
||
---
|
||
|
||
*Discipline reminder: "no harvest" is a valid outcome; do not manufacture proposals to fill the table (the inverse of Hermes's autonomous self-write). The yardstick is the steward's: did the steward have to re-explain something a skill could have carried?* |