Skip to content

Every code site naming the live component tree follows it #321

Description

@sameera

As a maintainer, I want the code that reads the authored tree to read its new home, so that the payload the release ships is still built from the tree that is actually authored.

Acceptance Criteria

  • Given the helper that resolves the live authored component tree, when it runs, then it resolves the new location.
  • Given the payload fingerprint assertion, when the test suite runs, then it hashes the authored tree at its new location and passes.
  • Given the whole workspace, when it is searched for code that resolves the repository-root .claude/ as the authoring source, then every match is the new location — including the skills-directory constant and the resolver-seeding helper in the parity test, which do not follow the helper automatically.
  • Given a release is built after the move, when its payload is listed, then it carries the same component files it carried before the move.

Notes

The inventory is wider than "two sites" and was measured during gating:

  • liveClaudeDir in libs/portable-tools/src/vendor-components.ts, and its caller in vendor-bundle.ts, which follows automatically.
  • parity.spec.ts reaches the repository's own .claude/ through three independent mechanisms, not one: the payload-fingerprint hash via liveClaudeDir, a CLAUDE_SKILLS_DIR constant with seven script constants hanging off it, and a resolver-seeding helper that copies from the repository root. Only the first follows the helper; the other two must be moved by hand.
  • vendor-components.spec.ts, the helper's own test.

One breakage this story does not own is now owned elsewhere. Three runtime sites — libs/epic-resolve/src/classify.ts, libs/pr-worktree/src/worktree.ts and libs/pr-worktree/src/git-fixtures.ts — resolve <target-root>/.claude/skills/nxs-gh-shared/delivery_config.py, which for this repository is the file Story 2 deletes. They are not authoring-tree reads, so this story's AC3 correctly excludes them. #249 gained a story for them during the same gating pass, and this epic is not startable before it lands.

AC4 is the regression check that matters: the move must not silently change what ships.

Metadata

Metadata

Assignees

No one assigned

    Labels

    infrastructureBuild tooling, Nx/Vite/pnpm config, dev environment, CI/CDstoryUser story (created by nxs-gh-create-story)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions