You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
types: skills loader.t27 redefines SkillMeta; use catalog.t27's and extend it there (NEW type-name conflict) #9128
Part of epic #9025 (downtime). Corpus Ratchet is red on master (run 38141306072): tri types ratchet reports SkillMeta NEW conflict (ledger 86, observed 89). Write it in t27 only, with no hand-written code in other languages (see #8236). DRY rule (AGENTS.md, see #8963): search before you write, with t27c dupes --name <fn> and grep -rn over specs/. If one exists, use it and extend it instead of copying.
Two ports of the same app, BrowserOS trios/agent-server/apps/server/src/skills/, each define the skill's metadata:
specs/port/browseros/trios/agent-server/apps/server/src/skills/catalog.t27:18, pub struct SkillMeta { name, description, location }. It came first, in 95cc3b4.
It is one concept, so there is one type: the loader uses the catalog's, and the catalog's gains the loader's fields.
User Scenarios
Given master with this change, when tri types ratchet runs, then SkillMeta is no longer reported as a NEW conflict.
Given both specs after the change, when their tests run with master's t27c, then they pass as before.
Requirements
FR-001: SkillMeta MUST be defined once, in catalog.t27, with the union of both field lists: id, name, description, location, enabled, version, builtIn. loader.t27 MUST use it and MUST NOT redefine it.
FR-002: The conflict MUST NOT be blessed: docs/reports/type_conflicts.json stays as it is.
grep -c '^struct SkillMeta' specs/port/browseros/trios/agent-server/apps/server/src/skills/loader.t27 prints 0. It prints 1 today.
./target/debug/tri types ratchet | grep -c 'SkillMeta NEW conflict' prints 0. It prints 1 today.
t27c seal specs/port/browseros/trios/agent-server/apps/server/src/skills/catalog.t27 --verify prints all hashes MATCH after the PR. Today it prints MISMATCH once the spec changes without a re-seal.
Activity