Skip to content

feat(install): add project-scope install - #37

Merged
3metaJun merged 4 commits into
mainfrom
feat/project-scope-install
Oct 6, 2026
Merged

3metaJun merged 4 commits into
mainfrom
feat/project-scope-install

Conversation

@3metaJun

@3metaJun 3metaJun commented Oct 6, 2026

Copy link
Copy Markdown
Owner

Problem

The installer only writes user-level skill directories. T3 Code runs each thread in a per-thread git worktree, and several providers read project skills only from the thread's cwd (Claude: .claude/skills; Cursor and Antigravity: .agents/skills and others). There was no way to install mstack into a repository.

Solution

--project <dir> copies skills into each harness's project root, defined as a project field in profiles/harnesses.json:

  • .agents/skills for Codex, OpenCode, pi, Grok and Antigravity (one shared copy; paths from each harness's docs and T3's AntigravitySkills.ts)
  • .claude/skills for Claude, with the unchanged directory-name adapter output

Staging, locking, receipts, rollback and --replace backups are unchanged. Backups land in <repo>/.agents/.harness-skills-backups/ and <repo>/.claude/.harness-skills-backups/, never under a skills root. Guardrails: the directory must exist, and the home directory, paths inside the mstack package, and .harness-skills-* paths are refused. --artifact, --migrate and --environment (including SSH) are refused with --project; HARNESS_SKILLS_*_DIR overrides are ignored. Empty .harness-skills-stage shells are now pruned after staging. README, docs/harness-adapters.md, docs/t3code.md and the usage text document the roots and the rule that a new worktree contains only committed files (T3 uses git worktree add from a ref).

Verification

  • npm test (422 pass) and npm run check-package
  • New tests use temp dirs only: per-harness roots, shared-group dedupe, Claude adapter output, refusal cases, rollback on a failed later target, --replace backup location, dry-run output, and no writes to the home directory.

Model: Claude Sonnet 5.5
Harness: Claude Code

🤖 Generated with Claude Code

3metaJun and others added 4 commits October 6, 2026 18:36
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@3metaJun
3metaJun merged commit d9e2c5b into main Oct 6, 2026
9 checks passed
@3metaJun
3metaJun deleted the feat/project-scope-install branch October 6, 2026 11:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant