Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ Each maps to the term or doctrine that owns the concept.
| cache *(the doc-restating-environment sense)* | `docs-hygiene:audit-derivability`'s derivable-from-environment doctrine; the word is overloaded here (plugin cache, prompt cache) |
| sediment | the `docs-hygiene` audit family's pruning doctrine; collides with the code-sense use in `playbooks:fable-5` |
| sycophancy | nothing. It is a generic LLM-behavior term with no distinct project meaning. Free-prose use is unaffected; it is simply not project vocabulary |
| software factory | the loop-lane convention ([`conventions/loop-lane/README.md`](conventions/loop-lane/README.md)) |
| map / territory | the source author's metaphor, cited where it appears in [`finding-your-unknowns.md`](finding-your-unknowns.md) "The unknowns taxonomy"; never house vocabulary (metaphor-jargon risk) |

## Provenance
Expand Down
23 changes: 17 additions & 6 deletions docs/upstream/aihero-course.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ the same day: `plugins/session-flow/skills/handoff/SKILL.md`,
|---|---|---|---|
| Handoff serves crossing boundaries: another agent, another repo, a colleague, a forked side task | `session-flow:handoff` "When to invoke" list; "sharing state with another session or machine" bullet | **ADOPT** (as a union) | User decision (#2899 comment 1): our dominant session-chain use (dumb-zone escape, session-ID chain, retrospective reconstruction) is named first-class ALONGSIDE his taxonomy, not instead of it; the deliverable is explicit routing signals for which form to use when. Filed: [#2956](https://github.com/melodic-software/claude-code-plugins/issues/2956). As-of 2026-08-17 |
| A single purpose argument ("What will the next session be used for?") tailors the doc to the next session's focus | No purpose argument; surface is `[file\|prompt] [topic]`; intent lives in the verbatim Original goal section | **ADOPT** | Shape decided in-lane: optional trailing free text `[file\|prompt] [topic] [purpose...]`; tailors emphasis only (Resumption brief lead, Suggested skills selection, Remaining-actions order); never drops sections; never alters the resume-prompt shape (find-handoff detection contract); Original-goal immutability wins on conflict. Filed: [#2955](https://github.com/melodic-software/claude-code-plugins/issues/2955). As-of 2026-08-17 |
| Save the handoff to the OS temp directory, not the current workspace | `<memory_dir>/handoffs/` (default `.work/handoffs/`), memory tier, self-gitignored | **REJECT** | Placement is load-bearing for us: retro's `previous_handoff` chain-walk, find-handoff recovery, and the cross-machine origin line all depend on workspace placement; OS-temp volatility is the failure class upstream's own corpus hit (temp-sweep in mattpocock/skills#306 context, durability ask in #482). His self-cleaning benefit is replaced by user-controlled removal. Confirms the #1477 finding-4 verdict (PR #1560). As-of 2026-08-17 |
| Lifecycle: temp placement self-cleans, so files never accumulate | Accumulation by design ("Multiple handoffs accumulate in the directory, fine", structure.md); nothing expires files | **REJECT** (silent expiry) | User decision (#2899 comment 1): handoffs stay primarily ephemeral in a location we control; cleanup is user-controlled removal, never silent expiry or OS cleanup. Retention is load-bearing (chain-walk, recovery, carry-forward), which is the recorded #1477 finding-4 rationale (issue comment 5084364831); this lane confirms rather than reverses it. Promote-content-never-file rule and worktree caveat filed: [#2956](https://github.com/melodic-software/claude-code-plugins/issues/2956). As-of 2026-08-17 |
| Save the handoff to the OS temp directory, not the current workspace | `<memory_dir>/handoffs/` (default `.work/handoffs/`), memory tier, self-gitignored | **REJECT** | Placement is a hard dependency for us: retro's `previous_handoff` chain-walk, find-handoff recovery, and the cross-machine origin line all depend on workspace placement; OS-temp volatility is the failure class upstream's own corpus hit (temp-sweep in mattpocock/skills#306 context, durability ask in #482). His self-cleaning benefit is replaced by user-controlled removal. Confirms the #1477 finding-4 verdict (PR #1560). As-of 2026-08-17 |
| Lifecycle: temp placement self-cleans, so files never accumulate | Accumulation by design ("Multiple handoffs accumulate in the directory, fine", structure.md); nothing expires files | **REJECT** (silent expiry) | User decision (#2899 comment 1): handoffs stay primarily ephemeral in a location we control; cleanup is user-controlled removal, never silent expiry or OS cleanup. Chain-walk, recovery, and carry-forward all require retention, which is the recorded #1477 finding-4 rationale (issue comment 5084364831); this lane confirms rather than reverses it. Promote-content-never-file rule and worktree caveat filed: [#2956](https://github.com/melodic-software/claude-code-plugins/issues/2956). As-of 2026-08-17 |
| Do not duplicate content captured in other artifacts (specs, plans, ADRs, issues, commits, diffs); reference by path or URL | Partial: "Summarize; never transcribe" (File roles), "reference it rather than restating" (Decisions); no general rule | **ADOPT** | User decision (#2899 comment 1): state the general rule explicitly in the skill body, mirroring upstream's wording; explicit over implicit. Filed: [#2956](https://github.com/melodic-software/claude-code-plugins/issues/2956). As-of 2026-08-17 |
| Include a suggested-skills section naming what the next agent should invoke | Suggested skills is a mandatory section of the handoff structure | **COVERED** | Present at parity or stronger (presence-gated per-skill suggestions, structure.md mandatory section set). As-of 2026-08-17 |
| Redact sensitive information (API keys, passwords, PII) | Mandatory redaction step with the git-remote-userinfo strip exception | **COVERED** | Ours is the more specified form of the same rule. As-of 2026-08-17 |
Expand Down Expand Up @@ -206,7 +206,7 @@ paragraph. Eval cases `lock-halts-on-planted-open-decision` (id 15) and
`plugins/planning/skills/interview/evals/evals.json`, each with planted fixtures under
`plugins/planning/skills/interview/evals/fixtures/`; because the marketplace has no model-graded
eval runner yet, the mechanical gate behind them is
`plugins/planning/tests/interview-defenses.test.sh`, which pins both cases and the load-bearing
`plugins/planning/tests/interview-defenses.test.sh`, which pins both cases and the exact
rule text in the skill body they grade against.

| Lesson claim | Ours | Verdict | Reasoning, basis, as-of |
Expand Down Expand Up @@ -267,7 +267,7 @@ the chain record's "course side UNVERIFIED" caveat on the clear step.
| Walkthrough machinery (npm run reset, `.agents/skills`, the `/` picker) and the lesson-comments example questions | Course-platform machinery and illustration | **NOT RELEVANT** | No repo counterpart owed. As-of 2026-08-17 |
| The loop's "clear" leg (clear your mind between features) | Recommend-clear (never auto-clear) sits post-Brief, licensed by Brief/ledger persistence — which dissolves upstream's own recorded no-ledger complaint | **DELIBERATELY DIFFERENT** (course side resolved) | The chain record carried "course side UNVERIFIED (lesson unreachable)" with a reopen-on-text condition; the condition fired at harvest — the committed lesson paste teaches no clear-step mechanics beyond one sentence plus a dictionary link, so the deliberate difference is confirmed against the actual text and the UNVERIFIED caveat retires. Upstream's own repo docs teach the opposite of a mandatory clear ("Hand the same conversation straight to to-spec"); loop-position nuance recorded. As-of 2026-08-18 |
| Ungrillable question → prototype detour (upstream fires it mid-grilling: "stop grilling… build the throwaway version… come back and answer in one line") | Absent from the interview (grep-confirmed by both audit validators); our route exists only downstream (wayfind / plan / brainstorm) | **ADOPT** (delivered) | Chain audit finding, upstream-repo-grounded. Filed: [#2998](https://github.com/melodic-software/claude-code-plugins/issues/2998); delivered by [#3045](https://github.com/melodic-software/claude-code-plugins/pull/3045) — `interview` now carries the detour in "Mid-interview composition" (routing look-and-feel to `/prototype:explore-directions`, logic/state/data-shape to `/prototype:pressure-test`) plus a **Needs-an-artifact** arm in the `context/loop.md` categorization taxonomy; planning 0.32.0. As-of 2026-08-19 |
| Plan-mode-off while grilling | Beyond upstream's taste point, a mechanical edge the audit surfaced: the ask-time register write is load-bearing and plan mode's read-only enforcement blocks it | **ADOPT** (delivered) | Includes reconciling `planning:plan`'s clarifying-rounds-in-plan-mode sentence with the lane 4 asset-rush doctrine. Filed: [#2998](https://github.com/melodic-software/claude-code-plugins/issues/2998); delivered by [#3045](https://github.com/melodic-software/claude-code-plugins/pull/3045) — the gotcha lands in `interview/context/gotchas.md`, and `plan`'s plan-mode round is now scoped to a scoping confirm with substantive rounds routed to `/planning:interview` outside plan mode; planning 0.32.0. As-of 2026-08-19 |
| Plan-mode-off while grilling | Beyond upstream's taste point, a mechanical edge the audit surfaced: the ask-time register write must happen, and plan mode's read-only enforcement blocks it | **ADOPT** (delivered) | Includes reconciling `planning:plan`'s clarifying-rounds-in-plan-mode sentence with the lane 4 asset-rush doctrine. Filed: [#2998](https://github.com/melodic-software/claude-code-plugins/issues/2998); delivered by [#3045](https://github.com/melodic-software/claude-code-plugins/pull/3045) — the gotcha lands in `interview/context/gotchas.md`, and `plan`'s plan-mode round is now scoped to a scoping confirm with substantive rounds routed to `/planning:interview` outside plan mode; planning 0.32.0. As-of 2026-08-19 |
| Provenance correction (adjacent, from the chain audit) | SSOT PR-#532 row | **CORRECTED in SSOT** | The row's "ADR 3-gate + glossary purity are house additions" claim is contradicted on current upstream main (`domain-modeling` carries both near-identically); annotated as convergent-or-derived, direction unverifiable. As-of 2026-08-18 |
| Round template separates consecutive questions with a horizontal rule `---` (upstream commit `85f83d3f`) | `interview` round shape is the per-question block in SKILL.md "Relentless mode" (`Q<N>:` lead, recommendation, `Basis:`, alternatives); no rule between blocks | **REJECT** (cosmetic, not adopted) | The only change to `grilling/SKILL.md` between `068b6e0` and `3cca18b3`; it alters no behavior. Each of our blocks opens with its own `Q<N>:` lead and ends in an Alternatives list, so the marker adds nothing the blocks do not already carry. Corrected 2026-10-04: an earlier reason here said the rule renders as a heading; upstream puts a blank line before it, so it renders as a thematic break, and the REJECT stands on the cosmetic ground only. Reopen if a user reports rounds running together. As-of 2026-10-04 |

Expand Down Expand Up @@ -452,8 +452,8 @@ the glossary carries the vocabulary, this table carries why.

**Cross-skill invocation phrasing (the routed lane 7 candidate):** ADOPT (adapted). Upstream
standardized cross-skill dependencies on explicit "Call the Skill tool with \"name\"" phrasing
(`.agents/invocation.md`, PRs #878/#880), on his measured claim — his repo's measurement, named
provenance, bucket ii — that it outperforms bare `/name` prose. This fleet practices the
(`.agents/invocation.md`, PRs #878/#880), on his asserted, unmeasured claim (`.agents/invocation.md`
gives no data; named provenance, bucket ii) that it outperforms bare `/name` prose. This fleet practices the
equivalent in part ("invoke `/plugin:skill` via the Skill tool" appears across the verification
and implementation families) but the practice was mixed — several operative chains hand off
bare — and codified nowhere; the doctrine now lives in
Expand All @@ -462,6 +462,17 @@ lane and scoped to new/edited text, with the fleet normalization sweep filed as
[#3002](https://github.com/melodic-software/claude-code-plugins/issues/3002). The sweep landed
2026-08-21; the scoping note is retired and the rule is now unconditional.

### Terms from the v1.3 video pass (decided 2026-10-10)

Graded outside lane 6, in the interview on Matt Pocock's "New Skills! v1.3" video
([#6947](https://github.com/melodic-software/claude-code-plugins/issues/6947)), under the same
admission rule. The glossary mirrors the REJECT row.

| Term | Verdict | Basis |
|---|---|---|
| software factory | **REJECT** (mapping recorded) | Maps to our loop lane (`docs/conventions/loop-lane/README.md`: `work-items:work-loop`, `source-control:babysit-loop`, CI intake triage). His dictionary defines it as agent sessions "started by triggers ... rather than by a human" ([entry](https://www.aihero.dev/ai-coding-dictionary/software-factory)); a second name for a concept the house already owns violates vocabulary parsimony. As-of 2026-10-10 |
| dark factory | **RECORDED** (definition only) | His [entry](https://www.aihero.dev/ai-coding-dictionary/dark-factory): a software factory that "writes the code and no human reads it", with automated checks and automated review as the only gates. Recorded so the term can be matched when upstream material uses it; no project term adopted. As-of 2026-10-10 |

## Coverage index (the journey's completion gate)

One row per course lesson vetted by this effort; every opinionated claim in each lesson maps to
Expand Down
Loading
Loading