protocol: register food-science-engine for an ASK-facing repo-advisor Project role - #192
Merged
Conversation
… Project role Why this change exists ---------------------- food-science-engine is already a registered protocol consumer (#190), resolving architecture-uncertain as a separately-operated surface. Standing up a hosted advisor Project for it additionally requires advisor-project-surface, and that profile's applicability is owner metadata — a consumer cannot self-declare it. Until this lands the repo sits in the profile's explicit_exclusions, so a carrier that installed the profile would be failed by check.sh --wave for installing a profile it is excluded from. The surface-overlay completion gate runs before a carrier is generated. The FSE census produced seven overlay requirements the registry did not hold; generating a bootstrap first would have shipped requirements the owner did not know, making the coverage report false and letting a later regeneration silently omit them. What changed ------------ protocol/manifest.json moves food-science-engine from explicit_exclusions into applies_to, and rewrites the note so applies_to records a REGISTERED hosted-Project role rather than a live installation. Live Project installation belongs to the operator state plane: a repo may enter applies_to before its Project configuration lands, and during that interval its missing required profile fails closed. protocol/profiles/advisor-project-surface.md the same registration and the same registered-vs-configured distinction in the owner-explanation header. docs/advisor-project-surface-architecture.md registers OVL-FSE-1 through OVL-FSE-7, scopes the overlay table per hosted Project ROLE rather than per repo, and recounts the coverage report — 101 registry IDs, 22 surface overlays, FSE 10 PRESERVE and 0 unowned. Also rewrites OVL-ECO-2 as a timeless invariant: it had frozen a current deployed topology into the slowest-aging carrier in the family, where the ecology index and generated bootstrap now own it. protocol/tests/run-check-fixtures.sh adds B5c, covering a consumer that installs a profile while listed in that profile's explicit_exclusions — the exact predicate this registration turns off for FSE. Retargets the L3eg mutation anchor, which the OVL-ECO-2 rewrite removed. What did not change ------------------- The profile's fenced distributable body is byte-identical, verified against this repo's own resolved copy in AGENTS.md, so no consumer re-sync obligation is created. The shared execution-protocol core is untouched. No consumer carrier is modified here: food-science-engine installs the profile in its own repository, under its own gates, after this lands. Nothing in this commit asserts that a hosted FSE Project exists, is configured, or is active. Out of scope ------------ Generation of the FSE advisor bootstrap, index, and Instructions carriers; every Project UI operation; the post-deployment operator-ledger reconciliation this registration will owe. Learning disposition: no retention — the registration mechanics are owned by docs/advisor-project-surface-architecture.md and protocol/manifest.json. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Appends the amended_by row for this change to the advisor-project-surface rule block. It is a separate commit because the value contains this PR's number, which does not exist until the PR is opened, and the SHA it records is C1's -- the commit that made the substantive change, not this one. No other content changes. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Changes one string in the #192 amended_by entry. The PR number and C1 SHA are unchanged, no p2 or p3 substantive byte is touched, and no fixture changes. Correcting C1's claim, which cannot be amended ---------------------------------------------- C1 (f059d98) describes B5c as "covering a consumer that installs a profile while listed in that profile's explicit_exclusions". That is false. The correction is recorded here rather than by amending C1, because C1's SHA is embedded in the provenance row this branch exists to write, and rewriting it would invalidate that row. B5c is a required-profile-completeness pair: NEG food-science-engine carrying only the opt-in architecture-uncertain profile still omits the newly required advisor-project-surface -> "missing required profile advisor-project-surface" POS carrying both profiles passes The install-while-excluded condition is real, and it is proven — but elsewhere, and not by this fixture. The staged FSE carrier fails against the BASELINE owner because food-science-engine is still in explicit_exclusions; that is a negative control run outside the fixture suite. The distinction matters because the provenance row is durable. Read as written, a future maintainer could take it as evidence that the exclusion predicate already has fixture coverage, and then remove or fail to add the real protection. Validation ---------- check.sh --local re-run at this commit: exit 0, 63 ok, 0 fail. The fixture suite's executable bytes are unchanged from C1 and remain at PASS=179 FAIL=0; it was not re-run for a provenance-string correction. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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.
Registers
food-science-engine(FSE) for one ASK-facing repo-advisor Project role, and lands the seven overlay requirements its census produced.Two commits: C1 is the substantive change; C2 appends only this PR's
amended_byprovenance row, which cannot be written until the PR number exists.Why this change exists
FSE is already a registered protocol consumer (#190), resolving
architecture-uncertainas a separately-operated surface. Standing up a hosted advisor Project for it additionally requiresadvisor-project-surface, and that profile's applicability is owner metadata — a consumer cannot self-declare it. Until this lands FSE sits in the profile'sexplicit_exclusions, so a carrier that installed the profile would be failed bycheck.sh --wavefor installing a profile it is excluded from.The surface-overlay completion gate runs before a carrier is generated. The FSE census produced seven overlay requirements the registry did not hold. Generating a bootstrap first would have shipped requirements the owner did not know — making the coverage report false, and letting a later regeneration silently omit them.
What changed
protocol/manifest.json— movesfood-science-enginefromexplicit_exclusionsintoapplies_to, and rewrites the note soapplies_torecords a registered hosted-Project role, not a live installation. Live Project installation belongs to the operator state plane: a repo may enterapplies_tobefore its Project configuration lands, and during that interval its missing required profile fails closed.protocol/profiles/advisor-project-surface.md— the same registration, and the same registered-vs-configured distinction, in the owner-explanation header.docs/advisor-project-surface-architecture.md— registersOVL-FSE-1…OVL-FSE-7; scopes the overlay table per hosted Project role rather than per repo, so an overlay absent from one role is not read as a gap in another; and recounts the coverage report (101 registry IDs · 22 surface overlays · FSE 10 PRESERVE · 0 unowned). Also rewritesOVL-ECO-2as a timeless invariant — it had frozen a current deployed topology into the slowest-aging carrier in the family, where the ecology index and generated bootstrap now own it.protocol/tests/run-check-fixtures.sh— addsB5c's required-profile-completeness pair. Its NEG case proves that FSE carrying only the opt-inarchitecture-uncertainprofile still omits the newly requiredadvisor-project-surface; its POS case proves that carrying both passes.Separately, the staged FSE carrier fails against the baseline owner because FSE remains in
explicit_exclusions; that is the install-while-excluded negative control. The fixture file also retargets theL3egmutation anchor removed by theOVL-ECO-2rewrite.Two FSE-specific overlays are worth naming, because they are the reason this registration is not a formality. FSE is a private repository with no public fallback, so
OVL-FSE-6requires fetch failure to fail closed — there is no second route to fall back to.OVL-FSE-7makes private-review capability a standing per-Project acceptance condition: a Stage-2 verdict counts as grounded in repository truth only after that Project has itself passed the private-read path end to end, and the result is non-transferable between Projects.Validation
Run in this repository, on this branch, at C1, working tree clean:
Before landing, the same two patches were checked with
git apply --check --whitespace=nowarnagainst a clean6092565, individually and together. Separately, in a disposable synthetic-consumer worktree, the staged FSE carrier passescheck.sh --waveagainst this amended owner and fails against the baseline owner for the exclusion reason — the install-while-excluded negative control, so the wave result is not vacuous.What did not change
The profile's fenced distributable body is byte-identical, verified against this repo's own resolved copy in
AGENTS.md, so no consumer re-sync obligation is created. The shared execution-protocol core is untouched. No consumer carrier is modified here — FSE installs the profile in its own repository, under its own gates, after this lands.Nothing in this PR asserts that a hosted FSE Project exists, is configured, or is active. Registration and configuration are deliberately separate states.
Out of scope
Generation of the FSE advisor bootstrap, index, and Instructions carriers; every Project UI operation, which is ASK-owned; and the post-deployment operator-ledger reconciliation this registration will owe — no ledger version is selected, no proposal prepared, and no checkout acquired or sought.
Voice scan
Added prose swept against the operator-side voice owner. Word-boundary form returns zero. The bare-substring form reports only artifacts —
cabinsideapplicable,carrieinsidecarrier/carried— and two apparent British-spelling hits resolve to REVISE and advise, both correct US spelling.Learning disposition
No retention. The registration mechanics are owned by
docs/advisor-project-surface-architecture.mdandprotocol/manifest.json; the registered-vs-configured distinction is now stated in both carriers rather than held anywhere private.Correction recorded in C3
C1's commit message describes
B5cas covering theexplicit_exclusionspredicate. That is false, and C3 corrects it in both theamended_byrow and here. C1 is not amended because its SHA is embedded in the provenance row this branch exists to write.At squash-merge, the message needs a look. This repository's squash commits are built from the commit messages, not from this body, so C1's uncorrected sentence would otherwise reach
mainalongside C3's correction.