spec-kitty / spec-kitty/spec-kitty
Make charter operations respect owned worktrees and activate hosted-binding recovery doctrine
- Dominant language
- Python
- Stars
- 1.6k
- Forks
- 165
- Avg merge
- 14h 22m
- Merged PRs (30d)
- 343
Description
SaaS incident recovery parent: https://github.com/spec-kitty/spec-kitty-saas/issues/1713 (program #1711).
While implementing activated recovery doctrine in a canonical runtime lane, `spec-kitty charter new` wrote new project artifacts into the repository-root checkout and `charter context` read that checkout's stale authority. Version 3.2.7: doctrine.new uses locate_project_root(); charter.context uses find_repo_root(), whose contract deliberately returns the main checkout. `charter activate` accepts an explicit hidden --repo-root, so activation and context can disagree about the owner. No installed tool was modified; only newly created untracked scaffolds were moved to their intended lane.
Implement supported explicit owned-checkout selection at the canonical charter authoring/context entry points, validated against repository identity and linked-worktree ownership. Preserve default semantics and refusal outside valid ownership. Add real linked-worktree CLI regressions proving target-only writes, lane-specific effective activation and no leakage from an inactive or stale primary charter.
Also activate CLI_HOSTED_BINDING_COMPATIBILITY and its verification procedure in this project's existing charter: stable provider repository ID survives renamed/transferred locators, supported CLI/SaaS/relay contract versions are explicit, unavailable/denied/mismatched identity fails closed, and source release is distinct from deployment/repair completion. Preserve canonical-source, credential, role separation and red-main doctrine.
Acceptance: independently reviewed runtime WPs, actual canonical activation/context positive and negative witnesses, source/tests plus current usage docs, and program receipt naming source revision, authority digest and consumer. No production mutation, merge, deployment or claims of installed protection belong to this issue.
Contributor guide
Research direction
Start at the `spec-kitty charter new`, `charter context`, and `charter activate` entry points, comparing `doctrine.new`/`locate_project_root()` with `charter.context`/`find_repo_root()` and the explicit `--repo-root` path. Add linked-worktree CLI regressions for target-only writes, lane-specific activation, and stale-primary isolation, then verify the existing charter's hosted-binding procedure and receipt requirements without production mutation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, python
- Domain
- cli, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100