Skip to content

docs(architecture): define multi-harness skill lifecycle - #306

Draft
davida-ps wants to merge 5 commits into
mainfrom
davida-ps/docs-multi-harness-skill-architecture
Draft

docs(architecture): define multi-harness skill lifecycle#306
davida-ps wants to merge 5 commits into
mainfrom
davida-ps/docs-multi-harness-skill-architecture

Conversation

@davida-ps

@davida-ps davida-ps commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • define the same verified-bootstrap → harness core → harness suite → optional guardian flow for OpenClaw, Hermes, NanoClaw v2, and PicoClaw
  • keep trust assets and contracts harness-neutral while making core, suite, scheduling, persistence, and guardian adapters harness-specific
  • define exact-byte installation, signed catalogs, durable receipts, compatibility migration, capability evidence, and family-integration gates
  • define the private beta/RC/stable-intent lab lifecycle and stable promotion order without exposing prereleases through public tags, releases, stores, or discovery
  • turn the reorganization into an acyclic dependency DAG with one bounded PR for each changed skill, new skill, documentation unit, contract/tooling unit, and pipeline behavior
  • define installable: false as a denial-only lifecycle state, with a controlled tag-creation workflow plus tag ruleset required to prevent manual public refs
  • split installability propagation into three review boundaries: Pages/local projection, web presentation, and a separately versioned clawsec-suite consumer
  • classify the current NanoClaw package as a historical, runtime-unverified, non-installable v1-era record with no supported runtime range

Key sequencing decisions

  • non-installable-release-policy-v1 must precede the NanoClaw tombstone.
  • Controlled tag creation validates lifecycle/installability policy before creating an annotated tag, then explicitly dispatches the release workflow with the exact tag object, peeled commit, and release-attempt ID.
  • Repository tag protection is enabled only after that controlled creator exists and is observed through an API preflight.
  • The catalog tombstone overlay is deny-only; it can withdraw but never authorize a release.
  • Direct web routes and suite discovery fail closed when effective lifecycle metadata is missing, malformed, or denies installation.
  • Core, suite, and drift guardian remain separate packages for each supported harness; optional capabilities do not block the first core release.

Security impact

  • No runtime, workflow, skill package, tag, release, catalog, store, or external system is changed by this documentation PR.
  • Historical releases remain fetchable evidence and are never deleted, rewritten, or silently re-authorized.
  • CI test-signed denial evidence is explicitly non-authorizing and never uses a production release signature.
  • Manual tag pushes remain a documented risk until the controlled tag creator and repository ruleset are implemented as their own units.

Remote validation

The exact documentation worktree was copied with scp into a fresh quarantine on davida@20.14.133.241.

  • quarantine: /tmp/clawsec-design-installability.nDq1ne
  • clean extraction with no AppleDouble sidecars
  • npm ci completed; the older branch lockfile's audit findings were not modified in this docs PR
  • npm run gen:wiki-llms generated 116 page exports
  • npm run build passed
  • independent architecture review reported no remaining blocker after the final controlled-tag dispatch correction

No local test or build is used as acceptance evidence for the current head.

Follow-up boundary

Every implementation unit described here uses its own branch and draft PR. This design does not authorize a merge, tag, release, publication, production-key operation, or repository-ruleset change.

Comment thread AGENTS.md
Comment on lines +41 to +45
## Skill Release Lifecycle

- Use Semantic Versioning prereleases in this order: `0.x.y-beta.N`, `0.x.y-rc.N`, then `0.x.y`. Never use or publish forms such as `0.x.yrcN`.
- Once the monotonic signed lifecycle-policy cutover serial is active, beta and RC artifacts plus stable-intent candidate identity, lab manifests, and receipts are private and lab-only. Reject every public prerelease ref not in the cutover policy's frozen legacy-ref/digest allowlist. Preserve allowlisted historical refs as legacy, non-authorized history; they remain fetchable and must not be deleted or rewritten.
- Deploy each candidate to a matching non-production harness lab. Use only an SSH endpoint explicitly named by the operator; never infer or substitute a hostname or alias.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Misleading release lifecycle enforcement

.github/workflows/skill-release.yml doesn’t enforce the AGENTS.md cutover/allowlist rules, so alpha|beta|rc tags still get released and publish-clawhub publishes them instead of keeping them private-only. Should we either mark that lifecycle as future policy until the workflow changes, or add the gate/allowlist and drop the same-major gh release delete step?

Severity

Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents
Before applying, verify this suggestion against the current code. In `AGENTS.md` around
lines 41-45 (the “Skill Release Lifecycle” bullets about cutover making beta/RC
artifacts private and rejecting public prerelease refs outside the frozen
legacy-ref/digest allowlist), the guidance is inconsistent with the current automation
in `.github/workflows/skill-release.yml` (prerelease is determined only by tag name
patterns, the `publish-clawhub` job runs for pushed tags, and superseded releases are
deleted). Fix by either (1) updating `skill-release.yml` to enforce the documented
cutover/allowlist gate before prerelease publication and ClawHub publishing, and
removing/adjusting the same-major superseded release deletion so allowlisted legacy refs
are preserved, or (2) if the workflow cannot be updated yet, revise `AGENTS.md` to
explicitly label this section as “future policy / not yet enforced by current CI”
until the workflow changes land.

Comment thread wiki/INDEX.md
Comment on lines 30 to 34
## Operations
- [Multi-Harness Suite Design (Proposed)](multi-harness-suite-design.md)
- [Security Signing Runbook](security-signing-runbook.md)
- [Signed Feed Migration Plan](migration-signed-feed.md)
- [Platform Verification Checklist](platform-verification.md)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spanish operations index missing new page

wiki/es/INDEX.md doesn't include the new top-level Operations link for Multi-Harness Suite Design (Proposed), so the Spanish index diverges from wiki/INDEX.md and navigation to that page is inconsistent — should we add the same entry there?

Severity

Want Baz to fix this for you? Activate Fixer You can also update your AI coding guidelines based on this comment by apply pr to [branch name]

Other fix methods

Fix in Cursor

Prompt for AI Agents
Before applying, verify this suggestion against the current code. In wiki/es/INDEX.md
around lines 23-28, under the top-level “Operations” section, update the localized
index to include the missing entry linking to “Multi-Harness Suite Design
(Proposed)” (multi-harness-suite-design.md). Mirror the corresponding item added in
wiki/INDEX.md lines 30-34 so Spanish navigation matches the untranslated Operations
document. Ensure the link text and relative path are correct and placed in the same
logical spot among the other Operations entries.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant