Skip to content

task: drop default-valued skill sidecar fields and keep case digests in one record #175

Closed

Description

@david6666666

Goal and acceptance

  • Problem / desired outcome:

    Two kinds of redundancy in the knowledge base make records harder to read and
    let copies drift:

    1. Default-valued sidecar fields. Of the 55 local-skill-v1 sidecars under
      src/inferrsi/data/skill_library/, 32 store "sources": [], 49 store
      "references": [] and 40 store the same placeholder
      "applicability": {"scope": "See procedure prerequisites and counter-signals"}.
      The readers already default these
      (skill_catalog._references, KnowledgeReader._skill), so the stored values
      add no information. The placeholder also feeds lexical Collect scoring with
      identical text for every skill, and is copied into every generated
      repo_packs/inferrsi/knowledge/**/skills/*.json projection.
    2. Case provenance duplicated in Markdown. admission-drain-occupancy.md
      repeats the raw trace SHA256 that its JSON record already holds, and carries a
      request-metadata SHA256 that exists only in the Markdown. Nothing checks that
      the two files agree. The other three casebook documents do not link their
      typed record at all.
  • Completion criteria:

    • Sidecars omit sources/references when empty and applicability when it is
      the shared placeholder; the effective reader output is unchanged apart from
      applicability becoming {} for those skills.
    • Case source identities and digests live only in the case JSON record; each case
      document links its record and cites the record's source URLs.
    • Contract tests fail if either redundancy returns.
    • The packaged skill index is regenerated and build_skill_index.py --check
      passes; the knowledge-base contract documents both rules.

Scope and constraints

  • In scope: skill sidecars and casebook cases under skill_library/, generated
    repo_packs/inferrsi/knowledge/ projections, tests/test_knowledge_contract.py,
    docs/knowledge-base.md.
  • Out of scope: reader/schema code changes; catalog JSON records (they are a
    structured index and stay as-is per docs/knowledge-base.md); folding sidecars
    back into frontmatter; normalizing the legacy untyped source inventories;
    provenance_readsets: [], which the contract test reads directly.
  • Relevant dependencies, shared interfaces or limits: follows the field
    ownership defined by RFC [RFC] Knowledge Base v1: Skills, Knowledge, and Internal Experience #17. Paths are protected by the knowledge-model policy
    ([Tracking] Knowledge PR admission: model and effort policy #50). Bundle content revisions of the touched skills and cases change, as they
    do for any content edit; no stored revision is rewritten.

Ownership and authorization

  • Proposed by / actual requester: @david6666666 (agent-drafted with Claude Code)
  • Status: Proposed
  • Accountable parent (Issue-level owner, if assigned): TBD
  • Slice implementer(s) / acting contributor (if assigned): Claude Code (claude-opus-5-5, effort max), with the requester
  • Goal-acceptance owner: TBD (knowledge maintainers)
  • Accepted decision or scoped delegation: Not yet granted

Inputs and deliverables

Completion and closure

  • Who accepts completion and may close: the goal-acceptance owner above.
  • Remaining uncertainty / next decision: whether maintainers also want the
    remaining placeholder limitations text and empty provenance_readsets
    normalized; not proposed here.
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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions