Skip to content

CODESTYLE.md ships link definitions into ./catalog/, which no downstream repo carries #559

Description

@ptr727

CODESTYLE.md is carried by every fleet repo at fidelity intent, whole. Two of its reference-link definitions point into catalog/, which is hub-only and appears in no spec/files.json baseline entry, so the links are dead in every downstream copy.

$ git show origin/develop:CODESTYLE.md | grep -n 'catalog'
504:[vscode-tasks]: ./catalog/snippets/configs/vscode-tasks.json
505:[vscode-tasks-python]: ./catalog/snippets/configs/vscode-tasks-python.json

Found while re-vendoring the file into HomeAutomation-Config, where a Copilot review flagged both as broken. The finding is correct and cannot be fixed downstream.

Why a downstream repo cannot resolve it

The definitions are used, by [vscode-tasks] references inside the carried .NET and Python sections. Deleting the definitions alone leaves those references unresolved, so a local fix means editing carried section bodies as well. Since the file is carried whole, the next re-vendor reintroduces all of it and the finding is filed again. That is the churn loop, not a fix.

Scope

Every repo carrying CODESTYLE.md, which is appliesTo: "*". This has presumably been dead in all of them since catalog/ became hub-only, and it surfaces now only because a review happened to read the link block.

Shapes worth weighing

Not proposing a resolution, since it is a carry-model call:

  • Inline the task JSON into CODESTYLE.md as a fenced block, so the content travels with the file that references it.
  • Drop the two references and their definitions from the carried sections, describing the standard task set in prose instead.
  • Declare catalog/snippets/configs/ as carried for the repos whose types use it, which is the heaviest option and pulls hub machinery downstream.
  • Point the definitions at the hub URL rather than a relative path, which the carry rules currently forbid, since the hub is private and such a link 404s for a downstream reader.

The second looks closest to how the rest of the carried content handles hub-only material, but that is a preference and the call is yours.

Related: the same class of finding on byte-locked prose is correctly a non-finding per .github/copilot-instructions.md "Reviewing Carried Fleet Content". This one differs because the unit is intent rather than verbatim, so the usual "the reference is intentional" answer does not settle it.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions