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
2 changes: 1 addition & 1 deletion plugins/knowledge/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "knowledge",
"version": "0.10.19",
"version": "0.10.20",
"description": "Ingest external knowledge into durable, synthesized artifacts. Ships a book-distillation pipeline (PDF/EPUB into concept-organized, author-attributed skill reference files), a YouTube pipeline (watch, transcript, link harvest, and repo-applicability synthesis), a course-digest pipeline (extract and synthesize online video courses — Dometrain, Teachable — into repo-applicable recommendations), and a docpage-digest pipeline (single online documentation page into a verified knowledge slice with dual verification — one cross-vendor verifier — and an interview handoff), plus a re-runnable setup action; a configurable library directory governs where synthesized artifacts land in the consuming repo.",
"author": {
"name": "Melodic Software",
Expand Down
47 changes: 47 additions & 0 deletions plugins/knowledge/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,53 @@ All notable changes to the `knowledge` plugin are recorded here. The `version` i
`.claude-plugin/plugin.json` is the delivery vehicle — a consumer receives a change
only after that version increases.

## [0.10.20]

### Added

- **Anthropic profile gains archive-reading conventions.** Some pages this publisher maintains are
archives — dated entries accumulated over time rather than a current statement, the [published
system prompts](https://platform.claude.com/docs/en/release-notes/system-prompts) being the
standing case — and three of their properties are invisible from inside any single entry, so a
digest that does not know them reads the archive wrong in a way its own verification cannot catch.
Each was found independently by multiple digest units before it became a convention. **(1) A dated
entry is not a content-change signal:** two entries five days apart are byte-identical, differing
on zero lines across 100-line bodies, with no annotation explaining why the second exists — so a
new dated heading licenses no inference of revision, intent, or policy movement. The rule is
stated in the narrower **content-change** form, which is what the finding supports: it bars
inferring change from sameness, and leaves a reader free to read an actual textual narrowing
between two entries as the change it is. **(2)
Absence of bold does not prove absence of change:** the page states that updates between versions
are bolded and the convention does not hold — one span carries zero bold markup across three dated
entries differing in three sentences plus a twelve-paragraph addition, another marks one
transition of three, and silent unbolded typo fixes and a silent removal were found the same way,
so deltas come from diffing entries and never from reading the markup. **(3) Note a source
artifact at the row; never silently repair it:** typos, escaped markup and malformed auto-links
are reproduced byte-exact so a verifier can tell faithful reproduction from digest transcription
error, with the blog channel's two known extraction artifacts named as the standing instance
rather than restated. Its one exception runs the other way — a downstream artifact reproducing a
known-corrupt entry *for a reader* rather than for verification repairs the corruption and says
that it did. The property all three refine — that everything inside a dated entry is scoped to that
entry's date — opens the section as its premise rather than as a fourth rule.

- **Anthropic profile gains hedge preservation and the residual-risk footer.** A source's own hedge
now travels with the content it qualifies: an artifact graduated from this publisher preserves the
hedge as the source states it, neither dropped as throat-clearing nor widened past what the source
claims. Two instances graduate under the one convention rather than each inventing its own — the
residual-risk footer below, and the harness best-practices material's "starting points, not set in
stone" relativization. The **footer** is quoted rather than paraphrased from [Reduce
hallucinations](https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/reduce-hallucinations)
(re-fetched 2026-08-03, HTTP 200; the sentence is byte-identical to the snapshot the corpus
froze): *"Remember, while these techniques significantly reduce hallucinations, they don't
eliminate them entirely. Always validate critical information, especially for high-stakes
decisions."* **Its scope is the source's own and is deliberately not broadened** — it is about
hallucinations, not errors or guardrail failures in general, and it names **no validator**, since
who or what validates critical information is unstated in the source. That exact scoping is the
part most likely to be lost in transit: it survived two correction rounds during the slice's
verification, both of which caught a widening. It attaches **at the profile rather than per
artifact**, because the profile is the seam every guardrail slice of this publisher flows through,
so a graduated chapter or template cites the footer and never restates it.

## [0.10.19]

### Changed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,33 @@ extraction waits for the third (Rule of Three).
`CLAUDE_CODE_MAX_OUTPUT_TOKENS` sits at line 277 of a 451-line, 316-row page whose rendered fetch
surfaced only roughly its first fifth.)

## Archive-reading conventions

Some pages this publisher maintains are archives — dated entries accumulated over time rather than a
current statement, the [published system
prompts](https://platform.claude.com/docs/en/release-notes/system-prompts) being the standing case.
Everything inside a dated entry is scoped to that entry's date. Three further properties of such a
page are invisible from inside any single entry, and a digest that does not know them reads the
archive wrong in a way its own verification cannot catch:

- **A dated entry is not a content-change signal.** Two entries can be byte-identical and here two
are: entries five days apart differ on zero lines across 100-line bodies, and the page carries no
annotation explaining why the second one exists. Record the re-publication as what it is; never
infer a revision, an intent, or a policy movement from the appearance of a new dated heading.
- **Absence of bold does not prove absence of change.** The page states that updates between
versions are bolded, and that convention does not hold: one span of the archive carries zero bold
markup across three dated entries that differ in three sentences plus a twelve-paragraph addition,
and another entry marks one transition of three. Silent unbolded typo fixes and a silent removal
were found the same way. Treat an unbolded inter-entry difference as an authoritative delta of
equal standing to a bolded one, which means the deltas come from diffing entries, never from
reading the markup.
- **Note a source artifact at the row; never silently repair it.** Typos, escaped markup and
malformed auto-links are reproduced byte-exact so a verifier can tell faithful reproduction from
digest transcription error. The two blog-channel extraction artifacts under **Fetch channel**
above are this rule's standing instance. One exception, and it runs the other way: a downstream
artifact reproducing a known-corrupt entry *for a reader* rather than for verification repairs the
corruption and says that it did.

## Claude-Code-applicability filter (with teeth)

Anthropic docs mix API-surface guidance with harness-relevant guidance. Every digest tags each
Expand Down Expand Up @@ -248,3 +275,30 @@ model-delta audit class), corpus graduation (a knowledge-corpus repository), or
synthesis (a cross-model artifact spanning units and slices the per-unit digest fan-out cannot
reach — not per-model, not an audit rule row, not graduation of one slice; its host is
undecided). The handoff records the candidate target per finding; the interview decides.

## Hedge preservation, and the residual-risk footer

A source's own hedge travels with the content it qualifies. An artifact graduated from this
publisher preserves the hedge as the source states it — neither dropped as throat-clearing nor
widened past what the source claims. The footer below is the standing instance; the harness
best-practices material's "starting points, not set in stone" relativization is the second, and both
graduate under this one convention rather than each inventing its own.

**Residual-risk footer.** Every artifact derived from a guardrail page of this publisher carries
that page's OWN residual-risk sentence when the page states one, quoted rather than paraphrased —
a hedge scoped to one page's techniques never transfers to an artifact derived from a different
page. The standing instance, for artifacts derived from [Reduce
hallucinations](https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/reduce-hallucinations)
(verified 2026-08-03):

> Remember, while these techniques significantly reduce hallucinations, they don't eliminate them
> entirely. Always validate critical information, especially for high-stakes decisions.

Its scope is the source's own and stays unbroadened. It is about **hallucinations**, not errors,
regressions, or guardrail failures in general; and it names **no validator** — who or what validates
critical information is unstated in the source and stays unstated here. Widening the failure mode or
supplying a mechanism states something the source does not.

The footer attaches at this profile, not per artifact, because the profile is the seam every
guardrail slice of this publisher flows through. A graduated chapter or template **cites this
footer**; it never restates it.
2 changes: 1 addition & 1 deletion plugins/playbooks/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "playbooks",
"version": "0.6.6",
"version": "0.6.7",
"description": "Doctrine and knowledge playbooks as on-demand skills, plus a maintainer-facing update skill. boris — Boris Cherny's Claude Code workflow tips (howborisusesclaudecode.com); skill-authoring — Anthropic's internal skill-authoring playbook; fable-5 — Claude Fable 5's operating doctrine (self-authored, no upstream). The boris and skill-authoring packs vendor a verbatim upstream baseline; /playbooks:update drift-checks and syncs those baselines centrally (maintainers).",
"author": {
"name": "Melodic Software",
Expand Down
32 changes: 32 additions & 0 deletions plugins/playbooks/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,38 @@ All notable changes to the `playbooks` plugin are recorded here. The `version` i
`.claude-plugin/plugin.json` is the delivery vehicle — a consumer receives a change
only after that version increases.

## [0.6.7]

### Added

- **`fable-5` calibration gains the per-model-matrix rule.**
`skills/fable-5/context/calibration.md` adds "Point at a per-model matrix; never copy one",
triggered when a per-model table — supported values, defaults, capabilities, limits — is about to
be written into a chapter, rule, brief, or answer. It is a **volatility** axis, distinct from the
surface axis and the channel axis the neighbouring sections own: a table reads as a fact and is
actually a snapshot, so a copy is a fact about the day it was copied with nothing in it saying
which day that was. The rule is point-at-the-owning-table, and for thinking configuration that
table is the per-model table on [Troubleshooting
thinking](https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting) — the
authority on what each model accepts, defaults to, and rejects (re-fetched 2026-08-03, HTTP 200).
A matrix stated anyway — because the reader cannot act without the values in front of them —
carries a **re-check trigger naming the next model release**, so a stale row is found by a
scheduled read rather than by a reader acting on it. The fourth rule connects the section to its
neighbour: a vendor matrix is an API-surface fact, so presence in the table is not reachability
where the reader is running.

The worked instance ships with it, verified 2026-08-03 on both sides. **Claude Mythos 5 has its
own row in that per-model table**, and in Claude Code it is a known model in the registry with
full gating machinery and still not selectable — no alias resolves to it, it is absent from
`latest_per_family`, it declares no capabilities, and it exposes no picker row; its registry entry
carries **exactly one non-null provider id (`first_party`) beside seven null siblings**. Reading
that row as an available option would be the copy error and the surface error at once, and the
table gives no signal that the two answers differ. The seven-null figure is stated at the
corrected count: an earlier reading of the same registry entry put every provider id null and
counted eight, which the schema disproves — `first_party` is non-nullable and exactly seven
siblings are nullish. `skills/fable-5/SKILL.md` carries the distilled line under core doctrine,
"Ground truth and checking — calibration".

## [0.6.6]

### Added
Expand Down
1 change: 1 addition & 0 deletions plugins/playbooks/skills/fable-5/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ The distillation of every chapter, grouped in operating-loop order. Each line is
- Settled means settled: reopen a session-verified, untouched fact only on contradicting evidence, never data-free doubt.
- A behavioral claim about Claude is a fact about the surface documenting it, and it transfers to the surface you are running on only after a per-claim check — never on vendor authority alone, which is what makes a scope slip invisible. Docs for your own surface clear that check where they stand; a claim from another surface (consumer apps, the raw API) is a hypothesis until checked, and a dated archive entry is scoped to its date on top of that.
- Channel grades a source independently of vendor: the reference page that owns a term defines it, and a vendor blog post corroborates. Cite the owning page and read it even when the post looks complete — a post is written once and never revised, and what it omits is invisible from inside it.
- A per-model matrix is the fastest-moving thing a vendor publishes: point at the table that owns it rather than copying it, and if you state one anyway, attach a re-check trigger on the next model release. Presence in such a table is not reachability on your surface.

### Thinking — reasoning-moves

Expand Down
12 changes: 12 additions & 0 deletions plugins/playbooks/skills/fable-5/context/calibration.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,18 @@ A vendor's own blog, launch announcement, or engineering post is first-party and
> Worked instance, verified 2026-08-03. "Verification loop" and "agentic loop" both have owning pages: the [glossary](https://code.claude.com/docs/en/glossary), [How Claude Code works](https://code.claude.com/docs/en/how-claude-code-works), and [Best practices](https://code.claude.com/docs/en/best-practices).
> The glossary's verification-loop entry carries what a post-length definition drops: a verification loop is the **prerequisite** for `/goal`, unattended runs, and dynamic workflows. A reader who took the short definition would have the concept right and still not know that three capabilities depend on it.

## Point at a per-model matrix; never copy one

Per-model tables — which configurations a model accepts, what it defaults to, which values it rejects, what its limits are — are the fastest-moving content a vendor publishes and the most tempting to paste, because a table reads as a fact rather than as a snapshot. A copied matrix is a fact about the day you copied it, and nothing in your artifact tells a later reader which day that was; a row is added or a default flips with each model release, and the copy stays confidently wrong.

- TRIGGER: about to write a per-model matrix — supported values, defaults, capabilities, limits — into a chapter, rule, brief, or answer.
- RULE: point at the vendor page that owns the table and let the reader read it there. For thinking configuration that page is [Troubleshooting thinking](https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting), whose per-model table is the authority on what each model accepts, defaults to, and rejects (verified 2026-08-03). Nothing you restate from it is more current than it is.
- RULE: if you state a matrix anyway — because the reader cannot act without the values in front of them — attach a re-check trigger naming the next model release, so a stale row is found by a scheduled read rather than by a reader acting on it.
- RULE: a vendor matrix is an API-surface fact, so "A claim's product surface travels with it" above applies to it row by row. Presence in the table is not reachability where you are running.

> Worked instance, verified 2026-08-03. Claude Mythos 5 has its own row in that per-model table. In Claude Code it is a known model in the registry with full gating machinery and is still not selectable: no alias resolves to it, it is absent from `latest_per_family`, it declares no capabilities, and it exposes no picker row. Its registry entry carries exactly one non-null provider id — `first_party` — beside seven null siblings.
> Reading its row as an available option would be the copy error and the surface error at once, and the table itself gives no signal that the two answers differ.

## The check / skip decision

Checking is an investment, not a virtue. Decide with the rules below. Already-settled exits first: a session-verified, untouched claim is evidence, not a claim needing a check — it leaves this matrix entirely (see "Settled means settled"). Among the rest, precedence: silent-failure mandate, then the gating-and-expensive test (its ≤2-call cost cap lives inside it), then the loud-fast-free skip, then DEFAULT.
Expand Down