Skip to content

feat(knowledge): land the harness-surface definition and bare-name boundary in the docs profile - #1888

Merged
kyle-sexton merged 2 commits into
mainfrom
docs/corpus-pa-m
Aug 3, 2026
Merged

feat(knowledge): land the harness-surface definition and bare-name boundary in the docs profile#1888
kyle-sexton merged 2 commits into
mainfrom
docs/corpus-pa-m

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

Lands two adopted Sitting-2 decisions in the anthropic-docs publisher profile — the campaign's consumer-facing tag-selection doctrine. knowledge 0.10.16 -> 0.10.17.

PA-M — the harness-surface definition

New bullet appended to the near-miss rule: a harness surface is a surface a user can reach, with three non-falsifying sub-shapes that harness-doc text can take without establishing one. Both the definition sentence and sub-shape (3) carry explicit [campaign-owned amendment] labels — the record shows the campaign making the selection-over-support choice, not inheriting an adjudication. Sub-shape (3) rests on its single attested instance (env-vars.md:394, a retry/fallback row) and carries its own over-broadening boundary: a doc line describing some other model's tier fails the sub-shape's own test.

The landing site was derived three independent ways: the profile already uses "harness surface" as its negative-claim term (:34, :54); the adopted row's own text says "write into the profile"; and the 0.10.16 CHANGELOG deliberately held this exact question (J-12) for the dispositions interview this answers.

PA-V — the bare-name boundary

The cc-applicable/mixed boundary bullet now carries the fourth API surface (model ID) and the negative half the profile never stated: bare names are not API surfaces — a product name, display name, or docs-path slug never by itself triggers mixed. Ratified from the de facto standard 15+ rows already stood on (cross-vendor retag applied in-slice). Deliberately excluded: a [campaign-owned amendment] label (this ratifies an evidence-carried standard, not a campaign-invented definition) and "feature names" (present only in one slice's wording, not the adopted row — widening the enumeration would exceed the adopted authority).

Verification

Both commits independently verified by a second model with the implementer's rationale withheld: the PA-M landing audited across landing-site derivation, amendment fidelity (verbatim vs the adopted blockquote), self-fire (no profile or checklist conflict; no live campaign artifact violates the definition), and mechanics; the PA-V text was authored by that verifier from the adopted row and applied verbatim, with the producer re-confirming the authority citations at the bytes before editing. The one enumeration of the API-surface list repo-wide is this bullet — no drift introduced. markdownlint 0 errors; CHANGELOG newest-first, both entries folded into the unreleased 0.10.17.

Downstream, already discharged against these rules: the four slice-local api-only ratifications (memory-tier) now cite the landed definition and route their three disclosed near-miss hits per these bullets.

No linked issue

Related

kyle-sexton and others added 2 commits August 3, 2026 13:29
…o not falsify api-only

J-12 was one of five items 0.10.16 deliberately held for the dispositions
interview. This answers it, appending to that release's near-miss rule rather
than standing up a new one.

A harness surface is a surface a user can reach. Three shapes come close
without falsifying `api-only`: a counterpart artifact, a same-workload
mention, and harness-internal recognition or support. The first two carry an
identical adjudication from two independent verification arms. The third is
new and rests on one attested instance, so it is enumerated no wider than
that base.

Both the definition sentence and the third sub-shape carry
`[campaign-owned amendment]` labels. Nothing in the corpus ever defined
"harness surface"; an unlabelled definition would read as inherited
adjudication when it is the campaign making the selection-over-support
choice, and a later slice would cite it as settled precedent it never was.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
The `cc-applicable`/`mixed` boundary bullet enumerated three API surfaces
(parameter, endpoint, SDK call) and never said what an API surface is not.
PA-V ratifies the fourth surface (model ID) and the negative half: a product
name, display name, or docs-path slug never by itself triggers `mixed`.

This is a de facto standard being written down, not a new definition. 15+ rows
in the models-explained slice already stood on it, and a cross-vendor retag
already applied it in-slice (Verifier B's round-1-reverify retagged claim 15
`mixed` → `cc-applicable` on exactly this boundary). That is why the bullet
carries no `[campaign-owned amendment]` label — unlike the harness-surface
definition above it, nothing here is the campaign's own selection.

The `changelog.md:961` parenthetical is not a restatement of the sub-shape (3)
sentence above. That sentence states the exclusion — a line describing some
other model's tier fails sub-shape (3)'s own test. This states the destination
of the reroute that exclusion mandates, and names the line.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Aug 3, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 45s —— View job


Security Review — PR #1888

  • Gather context (PR diff, changed files)
  • Review plugins/knowledge/.claude-plugin/plugin.json
  • Review plugins/knowledge/CHANGELOG.md
  • Review plugins/knowledge/skills/docpage-digest/context/anthropic-docs-profile.md
  • Post findings

No security issues found.

All three changed files are non-executable content: a version-string bump in plugin.json (0.10.16 → 0.10.17), a changelog entry, and prose additions to a Markdown classification profile (anthropic-docs-profile.md) consumed by the docpage-digest skill as tag-selection doctrine for an LLM performing documentation classification.

Reviewed for the categories in scope for this lane:

  • Injection surfaces (command/SQL/path/template): none — no shell, SQL, or template code is added or touched.
  • Secrets/tokens/credentials: none present or referenced.
  • GitHub Actions patterns (pull_request_target/workflow_run, script injection via github context, permission widening): not applicable — no workflow files are touched by this PR.
  • Supply-chain / unpinned actions: not applicable — no action or dependency pins are touched (deferred to zizmor's lane regardless).
  • Authorization/access-control logic: not applicable — no code paths, only doctrine text that shapes future human/LLM judgment calls when tagging documentation slices; it has no runtime effect and executes nothing.

plugin.json's diff is scoped to the version field only; no userConfig, permissions, or execution-relevant fields changed.

@claude

claude Bot commented Aug 3, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 1m 30s —— View job


Code Review — PR #1888

  • Gather context (PR diff, changed files)
  • Review plugins/knowledge/.claude-plugin/plugin.json
  • Review plugins/knowledge/CHANGELOG.md
  • Review plugins/knowledge/skills/docpage-digest/context/anthropic-docs-profile.md
  • Post findings

Note: Per REVIEW.md's lane split, security review is out of scope here (handled by the dedicated security-review workflow already running on this PR). This review covers correctness and maintainability only.

Summary

This is a clean, well-scoped docs-only change: a version bump, a CHANGELOG entry, and 22 added lines in the Anthropic docs publisher profile. No code, no plugin logic, no schema changes.

Findings

Nothing blocking. A few observations, none requiring action:

  1. Cross-references check out. The PR body's claims about the landing site are verifiable in the diff itself:

    • anthropic-docs-profile.md:34 and :54 already use "harness surface" as the negative-claim term, consistent with the new definition being appended there rather than introduced cold.
    • The [campaign-owned amendment] labels appear exactly where the PR body says: on the definition sentence (anthropic-docs-profile.md:84) and on sub-shape (3) (:88) — sub-shapes (1) and (2) correctly carry no label, matching the "selection over support, not inherited" distinction the PR draws.
    • The API-surface enumeration at :98-105 is the only such list in the file (confirmed via grep) — the PR body's "no drift introduced" claim holds.
  2. Numbering convention is consistent with the rest of the file. The new (1)/(2)/(3) enumeration matches the existing (a)/(b) style used earlier in the same file (lines 18, 25) for parenthetical sub-enumeration — no new convention introduced.

  3. CHANGELOG format matches precedent. ## [0.10.17] sits above ## [0.10.16] (newest-first, as claimed), uses the same ### Changed heading and bold-lead-sentence bullet style as prior entries, and the plugin.json version bump (0.10.16 → 0.10.17) is a matching semver bump per the docs/PLUGIN-PHILOSOPHY.md/CLAUDE.md "Versioned" rule.

  4. Minor, non-blocking: the CHANGELOG's PA-M entry mentions the amendment is "labelled as the campaign's own choice" but doesn't explicitly restate that sub-shape (3) alone (not the whole definition) carries the second label — a reader relying solely on the CHANGELOG (not the profile diff) would need to open the profile file to see that only shape (3) is new/campaign-owned versus (1)/(2) being independently corroborated. This is implicit but recoverable from the CHANGELOG's own wording ("The third... is new"), so not a real defect — just a note if a future editor wants the CHANGELOG to be fully self-contained.

  5. Could not run markdownlint-cli2 in this sandbox (no local binary, npx requires network approval that isn't available here) to independently verify the "0 errors" claim. The diff's formatting (dash bullets, asterisk emphasis, bold lead-ins) visually matches the repo's .markdownlint-cli2.jsonc style config, but this should be confirmed by CI rather than taken solely on my read.

No changes requested.

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Claude has reviewed this PR 1 time. The lane skips further automatic reviews after 5; deleting this comment resets the count.

@kyle-sexton
kyle-sexton merged commit e20bad8 into main Aug 3, 2026
32 checks passed
@kyle-sexton
kyle-sexton deleted the docs/corpus-pa-m branch August 3, 2026 18:01
kyle-sexton added a commit that referenced this pull request Aug 3, 2026
… (ADR-0007) (#1891)

## Summary

Implements the adopted RA-3b decision (doc-corpus campaign, Sitting 4):
rehosts the per-version model-adaptation chapters out of the `fable-5`
skill's private surface to plugin level.

- Moves
`plugins/playbooks/skills/fable-5/context/model-adaptation/{opus-4-8,opus-5}.md`
to `plugins/playbooks/reference/model-adaptation/` (100%-similarity
renames, content untouched).
- Re-points five `fable-5/SKILL.md` references at the new host via
`${CLAUDE_PLUGIN_ROOT}/reference/model-adaptation/` — the `full`
argument's EXCEPT clause is rewritten semantically (the old exclusion
had nothing left to exclude once the directory left `context/`),
preserving the load-only-the-selected-chapter fence.
- Adds ADR-0007, superseding ADR-0006 on the seam's address and nothing
else; ADR-0006's decision (model-scoped by default, promotion gate,
version-not-family routing) is preserved verbatim, and two of its three
live private-surface cites survive untouched by design.
- Bumps playbooks 0.6.4 → 0.6.5 with CHANGELOG entry.

Gate 1 (`${CLAUDE_PLUGIN_ROOT}` interpolation in SKILL bodies) was
probed empirically on Claude Code 2.1.220 and independently reproduced
by the verifier; the four-part verification record
(Claim/Basis/As-of/Recheck) is in ADR-0007 and the CHANGELOG.

Second commit applies the independent verifier's two wording notes
(CHANGELOG reference-count taxonomy; ADR-0007 cite-site enumeration).

No linked issue

## Related

- ADR-0006
(`docs/adr/0006-scope-model-doctrine-per-version-behind-a-promotion-gate.md`)
— superseded on the hosting seam only
- #1888 — prior doc-corpus campaign PR touching the knowledge profile
(same campaign, adjacent lane)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_011UarawwEnZQu7cB6i7WatJ

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
kyle-sexton added a commit that referenced this pull request Aug 3, 2026
…synthesis artifact target (#1892)

## Summary

Implements two adopted doc-corpus campaign decisions in the
docpage-digest publisher profile
(`plugins/knowledge/skills/docpage-digest/context/anthropic-docs-profile.md`):

- **Property extension** (Sitting 2): admits `anthropic.com/engineering`
as a fourth covered property in the profile's property list. The two
standing costs are stated in the CHANGELOG rather than silently
absorbed: the vendor-blog attestation bullet remains literally scoped to
`claude.com/blog` (rescoping it is a separate judgment), and the new
property contributes no machine-readable page index.
- **Fourth artifact target** (Sitting 6): adds cross-slice / cross-model
synthesis as a fourth Artifact target — the prerequisite landing site
for the commissioned cross-model synthesis pass (not per-model, not an
audit rule row; host repository deliberately undecided).

Bumps knowledge plugin 0.10.17 → 0.10.18 with CHANGELOG entry.
Independently verified against the adoption records with author
rationale withheld: net branch diff = exactly the two adopted
amendments, nothing more; merge-tree clean against current main.

No linked issue

## Related

- #1888 — prior profile change (property doctrine PA-M/PA-V), whose
versioning convention this mirrors
- #1891 — adjacent campaign lane (playbooks rehost), disjoint files,
merged while this branch was in flight

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_011UarawwEnZQu7cB6i7WatJ

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant