Skip to content

Publish a capability manifest (2026-08-08.3) - #20

Merged
backwerdrimshot merged 1 commit into
mainfrom
claude/capability-manifest
Aug 8, 2026
Merged

Publish a capability manifest (2026-08-08.3)#20
backwerdrimshot merged 1 commit into
mainfrom
claude/capability-manifest

Conversation

@backwerdrimshot

Copy link
Copy Markdown
Owner

Count It was the only one of the three apps carrying a Teaching Sequence that published nothing about itself. The shop site's new link-contract check could verify Mallet Map and Scale Trail, and had to report Count It as an unverifiable GAP — on the app whose link vocabulary is the most fragile in the family: sixteen hand-written cell ids that a teacher's posted assignment depends on.

/praxis-capabilities.json now declares the URL parameters an assignment link may carry, the cell ids links are written against, the levels, counting systems, evidence type, and what this app deliberately cannot do.

Two rules it exists to keep

Both learned from failures this week:

  1. configurableSettings names URL parameters, not internal fields. Scale Trail published questionTypes — a settings field — where the parameter it reads is types, so anything building a link from that manifest sent something the app ignored and silently got defaults (scale-trail#38). The test here derives the list from the parser rather than trusting two lists to stay in step.
  2. The served JSON is a serialized copy of src/capabilities.ts, and a test compares them. A manifest that drifts from the app it describes is worse than none — it's confidently wrong, and consumers act on it.

What it deliberately does not claim

The more careful half:

  • No skill vocabulary. None has been agreed — the Sequence 2 draft reserves it as an owner decision and names notation.rhythm-counting as a candidate only. An invented id would be consumed as though someone had signed off on it, so the manifest publishes an empty list and a status string saying why. A test pins that.
  • Result envelope declared app-local (app-local-1) rather than dressed up as the universal contract, and integration stays Level 1 for the same reason. Doc 23 lists the envelope reconciliation as separate work.
  • Limitations state plainly that it has no audio, no microphone, no tempo engine, and measures no live performance.

Also

BUILD_ID now reads from the manifest, so the footer stamp, the published version and the README release line cannot disagree — drift the release gate had to catch, removed rather than re-checked.

Tests 39 → 45, lint and build green, gate satisfied. Verified served at /praxis-capabilities.json with the footer stamping 2026-08-08.3.

Once this deploys I'll flip the site's contract from GAP to a live check, and all three apps will be verifiable.

🤖 Generated with Claude Code

https://claude.ai/code/session_011raCSRMD2S7VEhWeF56oxz


Generated by Claude Code

Count It was the only one of the three apps carrying a Teaching
Sequence that published nothing about itself. The shop site's
link-contract check could verify Mallet Map and Scale Trail and had to
report Count It as an unverifiable gap — on the app whose link
vocabulary is the most fragile in the family: sixteen hand-written cell
ids that a teacher's posted assignment depends on.

/praxis-capabilities.json now declares the URL parameters an assignment
link may carry, the cell ids links are written against, the levels, the
counting systems, the evidence type, and the things this app
deliberately cannot do.

Two rules it exists to keep, both learned from failures elsewhere this
week:

  * `configurableSettings` names URL PARAMETERS, not internal fields.
    Scale Trail published `questionTypes` — a settings field — where
    the parameter it reads is `types`, so anything building a link from
    that manifest sent something the app ignored and silently received
    defaults. The test here derives the list from the parser instead of
    trusting two lists to stay in step.
  * The served JSON is a serialized copy of src/capabilities.ts and a
    test compares them. A manifest that drifts from the app it
    describes is worse than none: it is confidently wrong, and
    consumers act on it.

What it does NOT claim is the more careful half. No skill vocabulary is
published, because none has been agreed — the Sequence 2 draft reserves
that as an owner decision and names a candidate only. An invented id
would be consumed as though someone had signed off on it. The result
envelope is declared app-local rather than dressed up as the universal
contract, and integration stays Level 1 for the same reason.

BUILD_ID now reads from the manifest, so the footer stamp, the
published version and the README release line cannot disagree — drift
the release gate had to catch, removed rather than re-checked.

Tests 39 -> 45. Verified served at /praxis-capabilities.json with the
footer stamping 2026-08-08.3.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011raCSRMD2S7VEhWeF56oxz
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
count-it 60bbbb5 Aug 08 2026, 01:56 AM

@backwerdrimshot
backwerdrimshot merged commit 8eba6d5 into main Aug 8, 2026
3 checks passed
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.

2 participants