|
| 1 | +## ADDED Requirements |
| 2 | + |
| 3 | +### Requirement: Repo root SHALL NOT carry the `vscode-material-icon-theme` submodule |
| 4 | + |
| 5 | +The system SHALL keep the repo root free of the `vscode-material-icon-theme` submodule and its `.gitmodules` registration. |
| 6 | + |
| 7 | +#### Scenario: `.gitmodules` no longer registers `vscode-material-icon-theme` |
| 8 | +- **WHEN** a contributor inspects `.gitmodules` at `HEAD` |
| 9 | +- **THEN** no stanza named `[submodule "vscode-material-icon-theme"]` is present |
| 10 | +- **AND** `git submodule status` does not list a `vscode-material-icon-theme` entry. |
| 11 | + |
| 12 | +#### Scenario: `vscode-material-icon-theme` path is gone from the working tree |
| 13 | +- **WHEN** a contributor runs `ls vscode-material-icon-theme` at the repo root |
| 14 | +- **THEN** the path does not exist |
| 15 | +- **AND** `git ls-tree HEAD vscode-material-icon-theme` returns no entry. |
| 16 | + |
| 17 | +### Requirement: Repo root SHALL NOT carry the legacy `.agents` bridge symlink |
| 18 | + |
| 19 | +The system SHALL remove the `.agents` symlink at the repo root and rely on the per-agent `.codex/` and `.claude/` surfaces directly. |
| 20 | + |
| 21 | +#### Scenario: `.agents` is absent from `HEAD` |
| 22 | +- **WHEN** a contributor runs `git ls-tree HEAD .agents` |
| 23 | +- **THEN** the command returns no entry |
| 24 | +- **AND** no `.agents` path exists in the working tree. |
| 25 | + |
| 26 | +#### Scenario: Internal references migrate off `.agents` |
| 27 | +- **WHEN** a contributor greps the repo (excluding `openspec/changes/archive/` and any historical `agent-codex-*` change folders) for `\.agents/` |
| 28 | +- **THEN** the only match is the negative regex guard in `test/setup.test.js` that asserts settings commands MUST NOT reference `/.agents/hooks/`. |
| 29 | + |
| 30 | +#### Scenario: Stale ignore patterns are dropped |
| 31 | +- **WHEN** a contributor inspects `.gitignore` |
| 32 | +- **THEN** none of `.agents/hooks/state/`, `.agents/.personality_migration`, `.agents/version.json`, `.agents/log/` appear. |
| 33 | + |
| 34 | +### Requirement: Multi-agent state-file glob defaults SHALL reference the real per-agent paths |
| 35 | + |
| 36 | +The system SHALL list the live `.codex/settings.local.json` and `.claude/settings.local.json` paths (not `.agents/settings.local.json`) in the auto-transfer, auto-resolve, and worktree-prune state-file glob defaults. |
| 37 | + |
| 38 | +#### Scenario: Template script defaults expand cleanly |
| 39 | +- **WHEN** a contributor inspects `AUTO_TRANSFER_EXCLUDE_DEFAULT` in `templates/scripts/agent-branch-start.sh`, `AUTO_RESOLVE_SAFE_GLOBS_DEFAULT` in `templates/scripts/agent-branch-finish.sh`, and `WORKTREE_STATE_EXCLUDE_GLOBS_DEFAULT` in `templates/scripts/agent-worktree-prune.sh` |
| 40 | +- **THEN** each default contains `:.codex/settings.local.json:.claude/settings.local.json:` |
| 41 | +- **AND** none of them contain `:.agents/settings.local.json:`. |
| 42 | + |
| 43 | +#### Scenario: Agent contract Git Hygiene list matches |
| 44 | +- **WHEN** a contributor reads the "Never stage or commit" list in `AGENTS.md` (and the `CLAUDE.md` symlink) |
| 45 | +- **THEN** `.codex/settings.local.json` and `.claude/settings.local.json` are present |
| 46 | +- **AND** `.agents/settings.local.json` is absent. |
0 commit comments