feat(002): expand the product family (tenant tools + 4 OAP primitives)#2
Merged
Conversation
Leaves Edit(**) allowed; Write now prompts. Author: repo owner.
Both are public Apache-2.0 repos under stagecraft-ing: tenant-emit signs a produced app's governance certificate, tenant-tail re-verifies the factory's run-side paperwork with no trust in the producer. They join the family list (footer + README + REPO_META/PRODUCT_FAMILY) and spec 002 section 2, dated 2026-07-15. Like spec-spine, they are named and linked but not added to the /registry bake set (spec 001), so the baked payload is unchanged. Roles and licenses are checkable against each repo's README and LICENSE. app/lib/product-family.ts is owned by spec 001 via its app/ directory, so the coupling gate flags it; the authoring edit lives in the content owner (spec 002 section 2) and spec 001 is deliberately untouched. Waived in the PR body per the adversarial-refusal rule.
…ust-window to the family Four more public Apache-2.0 repos under stagecraft-ing, the OAP-extracted primitives: action-gate (deterministic decision gate), attest-ledger (tamper-evident record ledger), canonical-keysort-json (canonical JSON at the hash boundary), trust-window (rolling-window trust scorer). Roles/licenses are checkable against each repo's README/LICENSE and GitHub description. Same treatment as the tenant tools and spec-spine: named + linked in the family list (footer + README + REPO_META/PRODUCT_FAMILY) and recorded in spec 002 section 2, not added to the /registry bake set. Verified: the baked payload's repo set stays the original four; the footer now renders all 10 family repos. Coupling drift on app/lib/product-family.ts (spec-001-owned by directory) is covered by the PR-body Spec-Drift-Waiver already in place.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expands the Stagecraft product family shown on the site from four repos to ten. All additions are public Apache-2.0 repos under stagecraft-ing, named and linked in the family list but NOT added to the /registry bake set (exactly like spec-spine), so the baked registry payload is unchanged.
Vended tenant tools:
OAP-extracted primitives:
They join the footer product-family list, the README ecosystem list, and REPO_META/PRODUCT_FAMILY in app/lib/product-family.ts. Spec 002 section 2 records the expanded family (dated 2026-07-15). Also included: a small chore commit dropping blanket Write(**) from the .claude/settings.json allow list (the repo owner's own change).
Testing
Coupling
Spec-Drift-Waiver: app/lib/product-family.ts is spec-001-owned by directory (app/); the authoring edit for this family-list change lives in the content owner, spec 002 section 2. Spec 001 (scaffold) is intentionally not re-authored, per .claude/rules/adversarial-prompt-refusal.md.