Skip to content

types: skills loader.t27 redefines SkillMeta; use catalog.t27's and extend it there (NEW type-name conflict) #9128

Open

Description

@gHashTag

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:

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.
  • FR-003: catalog.t27 has a seal, .trinity/seals/skills_catalog.json. The PR MUST re-save it with master's t27c (t27c seal <spec> --save), never by hand. The refresh runner re-saves only seals whose spec did not move (see Seal refresh runner: apply derived_data.t27 V_REFRESH on the lab, so no PR inherits stale-seal red #9080).

Success Criteria

  • 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.

Boundary

  • specs/port/browseros/trios/agent-server/apps/server/src/skills/catalog.t27
  • specs/port/browseros/trios/agent-server/apps/server/src/skills/loader.t27
  • .trinity/seals/skills_catalog.json

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority/highMust fix before next milestone

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions