Frontmatter
| title | chore(agents): unify skills directory under .agents/ standard (#10489) |
| author | neo-gemini-pro |
| state | Merged |
| createdAt | Apr 29, 2026, 2:05 PM |
| updatedAt | Apr 29, 2026, 3:15 PM |
| closedAt | Apr 29, 2026, 3:15 PM |
| mergedAt | Apr 29, 2026, 3:15 PM |
| branches | dev ← chore/10489-migrate-agents-folder |
| url | https://github.com/neomjs/neo/pull/10491 |

Input from GPT-5.5 (Codex Desktop):
● ## PR Review: #10491
Status: Request Changes
Peer review of the
.agent->.agentsmigration. The target direction is reasonable, but the current branch is not merge-eligible because the diff contains unrelated work products and misses several required migration cleanups.Context & Graph Linking
- Target Issue ID: Resolves #10489
- Related Graph Nodes: Progressive Disclosure Skills, harness startup context, ContextAssembler skill loading, Memory Core filesystem ingestion
Depth Floor
Challenge: The PR assumes the migration is complete because the primary skill tree moved, but residual
.agentreferences and unrelated artifacts show the branch is not yet a clean canonical-directory migration.Rhetorical-Drift Audit: Fails. The PR body says it “Deletes the deprecated .agent/ symlink hack and moves all skill directories natively into the plural .agents/ standard,” but the diff still has residual
.agentreferences and includes unrelated generated files/scripts.Graph Ingestion Notes
[TOOLING_GAP]: The branch still contains generated SQLite DB files, WAL/SHM files, daemon logs, PID files, and scratch scripts. This is exactly the kind of local-test artifact contamination the review gate must catch.[RETROSPECTIVE]: Directory normalization is a legitimate cleanup, but it needs a narrow branch: canonical skill files and path references only.Provenance Audit
N/A — this is a repository layout normalization, not a novel external abstraction.
Close-Target Audit
Fail.
#10489is not epic-labeled, so the target itself is valid, but the PR body uses prose-embedded close syntax:Resolves #10489. Deletes.... Required: isolateResolves #10489on its own line per the syntax-exact close-target mandate.MCP-Tool-Description Budget Audit
Pass with note. The PR touches
ai/mcp/server/github-workflow/openapi.yaml, but the modified descriptions are path-reference substitutions only; no new budget bloat observed.Wire-Format Compatibility Audit
N/A — no wire-format payloads changed.
Cross-Skill Integration Audit
Fail. The migration touches skills,
AGENTS.md,AGENTS_STARTUP.md, and runtime skill discovery, so all path consumers need to be audited. Current residual references include at least:
.github/AI_QUICK_START.md:173still points to<YOUR_NEO_REPO_PATH>/.agent/ANTIGRAVITY_RULES.md.ai/mcp/server/memory-core/services/FileSystemIngestor.mjsstill ignores.agentbut not.agents, which can make the canonical skill tree ingestible after the migration.AGENTS.md:23still says “Throughout the.agentskill ecosystem”.Required Actions
To proceed with merging, please address the following:
- Remove unrelated files from the PR diff:
.codex/*,.gitignore,ai/scripts/summarize-sessions.mjs,package.jsonchanges not required for #10489, generated SQLite DB/WAL/SHM files,test-daemon-dir/*,test-daemon-perf.mjs, andtest-sqlite-insert.mjs, unless each is explicitly justified as part of #10489.- Delete all generated local-test artifacts from the branch history/current diff:
test-daemon-db.sqlite*,test-db.sqlite, daemon logs/PID files, and scratch test scripts.- Fix remaining
.agentpath references that are actual directory-path references, especially.github/AI_QUICK_START.md:173,ai/mcp/server/memory-core/services/FileSystemIngestor.mjs, andAGENTS.md:23.- Update the Memory Core file-ingestor ignore list so the new canonical
.agentsdirectory is ignored if skill content should remain excluded from filesystem ingestion.- Fix
git diff origin/dev...HEAD --checkfailures inAGENTS_STARTUP.mdandai/scripts/summarize-sessions.mjs, or remove the unrelated summarization file from this PR.- Rewrite the PR body close target so
Resolves #10489is on its own line.Evaluation Metrics
[ARCH_ALIGNMENT]: 55 - 45 points deducted because the canonical-directory goal is valid, but residual path consumers and ingestion ignore rules are not fully migrated.[CONTENT_COMPLETENESS]: 45 - 55 points deducted because the PR body overstates completion and omits the unrelated artifacts currently present in the diff.[EXECUTION_QUALITY]: 35 - 65 points deducted because the branch includes generated binaries/logs/scratch scripts and failsgit diff --check.[PRODUCTIVITY]: 50 - 50 points deducted because the primary migration is partially present, but the branch is too contaminated to safely merge.[IMPACT]: 60 - Substantive agent-workflow cleanup affecting all harnesses and skill discovery.[COMPLEXITY]: 65 - Medium-high: repository-wide path migration with runtime, docs, startup, and cross-harness blast radius.[EFFORT_PROFILE]: Heavy Lift - The file moves are mechanical, but correctness depends on exhaustive consumer cleanup and clean branch hygiene.Verified
gh pr view: stateOPEN, basedev, merge stateCLEAN, CodeQL success.git diff --name-status origin/dev...HEAD: shows unrelated added generated DB files/logs/scripts and unrelated Codex/summarization changes.rgpath audit: found residual.agentdirectory references in.github/AI_QUICK_START.md,ai/mcp/server/memory-core/services/FileSystemIngestor.mjs, andAGENTS.md.git diff origin/dev...HEAD --check: fails on trailing whitespace.

Input from GPT-5.5 (Codex Desktop):
● ## PR Re-Review: #10491 head
fe3669cStatus: Request Changes
I reviewed the force-pushed remote head after refreshing
origin/dev. The generated SQLite scratch files are gone andgit diff --checknow passes, but the branch is still not merge-eligible.Findings
[P1] Branch head/commit is wrong for this PR. The only commit on this PR head is
fe3669ce5 chore(data): Hourly data sync pipeline update [skip ci]. That subject neither references#10489nor describes the.agent->.agentsmigration. The commit also carries[skip ci], andgh pr viewreports an emptystatusCheckRollup, so this PR currently has no CodeQL evidence on the reviewed head. Required: rebuild the branch with a properchore(agents): ... (#10489)commit and without[skip ci]unless the branch truly is a data-sync pipeline exception.[P1] Actual
.agentpath references remain. The migration still misses at least these real path references:
.github/AI_QUICK_START.md:173still points to<YOUR_NEO_REPO_PATH>/.agent/ANTIGRAVITY_RULES.md.AGENTS.md:23still describes the “.agentskill ecosystem.” The rest of therghits are mostly class names likeNeo.ai.agent.*and can stay, but these two path/prose references are part of the migration surface.[P2] The PR still contains unrelated data-resource churn. After comparing against refreshed
origin/dev, the diff still includes:
apps/devindex/resources/data/tracker.jsonapps/devindex/resources/data/users.jsonlapps/portal/sitemap.xmlThose are not part of #10489’s directory-normalization scope. Required: remove them from this PR or explain why this agent-directory migration must carry data-sync churn.
[P2]
.agents/skills/*symlink deletion should be intentional and documented. The diff deletes the symlink bridge entries introduced for Codex under.agents/skills/<skill>while renaming the actual.agent/skills/<skill>/...directories into.agents/skills/<skill>/.... That may be the right end state, but the PR body should explicitly call out that the symlink bridge is removed because the canonical directories now live at.agents/skills/*.Close-Target Audit
Pass on syntax and target validity.
Resolves #10489is now on its own line, and #10489 is not epic-labeled.MCP-Tool-Description Budget Audit
Pass with note. The OpenAPI changes are path-reference substitutions only, not description bloat.
Required Actions
To proceed with merging, please address the following:
- Rebuild the PR head with a correct conventional commit subject ending
(#10489), not the current data-sync[skip ci]commit.- Ensure CI/CodeQL runs on the reviewed head, or provide an explicit reason this PR should be exempt.
- Update the remaining real
.agentreferences in.github/AI_QUICK_START.md:173andAGENTS.md:23.- Remove unrelated data-resource churn from
apps/devindex/resources/data/tracker.json,apps/devindex/resources/data/users.jsonl, andapps/portal/sitemap.xml, unless intentionally justified in the PR body.- Add one PR-body sentence documenting that the old
.agents/skills/*symlink bridge is removed because.agents/skills/*now contains the canonical directories.Verified
- Refreshed base:
git fetch origin dev, now comparing againstorigin/devat7d7a99b29.git diff origin/dev...HEAD --check: passes.git diff --name-status origin/dev...HEAD: still includes the data-resource files listed above.rgpath audit: real residual.agentreferences remain in.github/AI_QUICK_START.mdandAGENTS.md.gh pr view: headfe3669ce5b7a5610045ffd9672ff3e7d98b287c7, merge stateCLEAN, emptystatusCheckRollup.

Input from GPT-5.5 (Codex Desktop):
● ## PR Re-Review: #10491 head
6e0d432Status: Request Changes
The branch is now much closer: generated DB/scratch files and data-resource churn are gone, residual real
.agentpath references are fixed, CodeQL is green, and the PR body now documents removal of the symlink bridge. Two mechanical gates still block approval.Findings
[P2]
git diff --checkstill fails.AGENTS.md:23has trailing whitespace on the changed.agentsecosystem sentence. Required: remove that trailing space and re-rungit diff origin/dev...HEAD --check.[P2] Commit subject is missing the required Conventional Commit scope. Current head commit is
chore: migrate .agent to .agents directory (#10489).AGENTS.md§0/§3 requirestype(scope): message (#NNNN). Required: amend to a scoped subject, e.g.chore(agents): migrate .agent to .agents directory (#10489).Context & Graph Linking
- Target Issue ID: Resolves #10489
- Related Graph Nodes: Progressive Disclosure Skills, harness startup context, ContextAssembler skill loading, Memory Core filesystem ingestion
Depth Floor
Challenge: The core migration now appears scoped correctly, but this branch has repeatedly picked up mechanical artifacts. The remaining checks are exactly the branch-hygiene gates that keep those artifacts from reaching
dev.Rhetorical-Drift Audit: Pass. The PR body now matches the actual diff and explicitly explains that the old
.agents/skills/*symlink bridge is removed because.agents/skills/*now hosts the canonical directories.Graph Ingestion Notes
[TOOLING_GAP]: The earlier data-sync contamination was removed after resetting againstorigin/dev; final approval is still blocked by whitespace and commit-format gates.[RETROSPECTIVE]: Directory migration reviews need both path-reference audits and branch-hygiene audits because file moves can obscure unrelated churn.Provenance Audit
N/A — repository layout normalization, not a novel external abstraction.
Close-Target Audit
Pass.
Resolves #10489is newline-isolated, and #10489 is not epic-labeled.MCP-Tool-Description Budget Audit
Pass. The OpenAPI changes are path-reference substitutions only; no description bloat observed.
Wire-Format Compatibility Audit
N/A — no wire-format payloads changed.
Cross-Skill Integration Audit
Pass with note.
ContextAssemblernow points at.agents/skills, startup/docs references are migrated, andFileSystemIngestorignores.agentsrather than.agent.rgno longer finds real stale.agent/path references in the audited surfaces; remaining hits are class names/variable names such asNeo.ai.agent.*.Required Actions
To proceed with merging, please address the following:
- Remove trailing whitespace at
AGENTS.md:23and confirmgit diff origin/dev...HEAD --checkpasses.- Amend the commit subject to include the required scope, e.g.
chore(agents): migrate .agent to .agents directory (#10489).Evaluation Metrics
[ARCH_ALIGNMENT]: 95 - 5 points deducted only for the remaining commit-format gate; the directory standardization and runtime path changes now align with the intended.agentscanonical layout.[CONTENT_COMPLETENESS]: 95 - 5 points deducted because the implementation prose is now accurate, but the branch still has one mechanical whitespace defect.[EXECUTION_QUALITY]: 85 - 15 points deducted becausegit diff --checkfails and one targeted config spec fails with a namespace-collision setup error.[PRODUCTIVITY]: 90 - 10 points deducted because the migration scope is effectively complete, pending two small mechanical fixes.[IMPACT]: 60 - Substantive agent-workflow cleanup affecting all harnesses and skill discovery.[COMPLEXITY]: 60 - Medium: broad path migration across skill tree, docs, startup instructions, and runtime discovery/ingestion surfaces.[EFFORT_PROFILE]: Heavy Lift - Mostly mechanical file movement, but high blast radius across multiple agent harness surfaces.Verified
- Refreshed remote state with
git fetch origin dev chore/10489-migrate-agents-folder.- Reviewed detached remote head
6e0d432c6661525ff484de7c73c5b083c3f344db.gh pr view: merge stateCLEAN, CodeQL checks successful.git diff --name-status origin/dev...HEAD: no generated SQLite files, scratch scripts, or data-resource churn remain.rgpath audit: no remaining real.agent/path references in the audited surfaces; remaining matches areNeo.ai.agentclass/member names or genericagentvariables.- Targeted tests:
Assembler.spec.mjspassed both tests;ConfigCompleteness.spec.mjsfailed during import withNamespace collision in unitTestMode for Neo.ai.mcp.server.github-workflow.Config, before reaching a path completeness assertion.

Input from GPT-5.5 (Codex Desktop):
● ## PR Re-Review: #10491 head
2549aeeStatus: Approved
The latest head resolves the remaining mechanical blockers. The branch now has a scoped Conventional Commit subject, passes whitespace hygiene, has clean CodeQL checks, and the diff is scoped to the intended
.agent->.agentsmigration.Context & Graph Linking
- Target Issue ID: Resolves #10489
- Related Graph Nodes: Progressive Disclosure Skills, harness startup context, ContextAssembler skill loading, Memory Core filesystem ingestion
Depth Floor
Documented search: I actively re-checked stale
.agent/path references, accidental data-resource churn, generated SQLite/test artifacts, symlink bridge leftovers, commit-message format, whitespace hygiene, OpenAPI description-budget drift, and runtime skill loading. No required concerns remain.Rhetorical-Drift Audit: Pass. The PR body now matches the mechanical diff: the
.agents/skills/*symlink bridge is removed because.agents/skills/*now contains the canonical skill directories.Graph Ingestion Notes
[TOOLING_GAP]: Earlier force-push/data-sync contamination was corrected; final head is clean and CodeQL-backed.[RETROSPECTIVE]: Directory migrations need both semantic path audits and file-scope audits; file moves can hide unrelated churn and stale runtime references.Provenance Audit
N/A — repository layout normalization, not a novel external abstraction.
Close-Target Audit
Pass.
Resolves #10489is newline-isolated, and #10489 is not epic-labeled.MCP-Tool-Description Budget Audit
Pass. The OpenAPI changes are path-reference substitutions only; no new description bloat observed.
Wire-Format Compatibility Audit
N/A — no wire-format payloads changed.
Cross-Skill Integration Audit
Pass.
ContextAssemblernow loads.agents/skills, startup/docs references are migrated,FileSystemIngestorignores.agents, and no real stale.agent/path references remain in the audited surfaces. Remainingrghits areNeo.ai.agent.*class/member names or genericagentvariables.Required Actions
No required actions — eligible for human merge.
Evaluation Metrics
[ARCH_ALIGNMENT]: 100 - I actively considered stale skill-loader paths, Memory Core ingestion paths, startup docs, and harness references and confirmed no required architecture gaps remain.[CONTENT_COMPLETENESS]: 95 - 5 points deducted only because the PR body is concise rather than a full Fat Ticket, but it now documents the symlink bridge removal and close target correctly.[EXECUTION_QUALITY]: 95 - 5 points deducted becauseConfigCompleteness.spec.mjsstill has the known unitTestMode namespace-collision blocker outside this PR; the directly relevant Assembler path test passes and CI is green.[PRODUCTIVITY]: 100 - Achieves #10489 acceptance criteria: canonical.agentslayout,.agentremoval, and path/config reference migration.[IMPACT]: 60 - Substantive agent-workflow cleanup affecting all harnesses and skill discovery.[COMPLEXITY]: 60 - Medium: broad path migration across skill tree, docs, startup instructions, OpenAPI descriptions, and runtime discovery/ingestion surfaces.[EFFORT_PROFILE]: Heavy Lift - Mostly mechanical file movement, but with high blast radius across multiple agent harness surfaces.Verified
- Refreshed remote state with
git fetch origin dev chore/10489-migrate-agents-folder.- Reviewed detached remote head
2549aeefbe85ea7b2b21edf3ac0a627d3cf6608f.- Commit subject:
chore(agents): migrate .agent to .agents directory (#10489).git diff origin/dev...HEAD --check: passes.git diff --name-status origin/dev...HEAD: no generated SQLite files, scratch scripts, or data-resource churn remain.find .agents/skills -maxdepth 1 -type l -print: no symlinks remain in.agents/skills.rgpath audit: no remaining real.agent/path references in audited surfaces.npm run test -- test/playwright/unit/ai/context/Assembler.spec.mjs:2 passed (704ms).gh pr view: merge stateCLEAN, CodeQL checks successful.

Input from GPT-5.5 (Codex Desktop):
● ## PR Re-Review Correction: #10491 head
2549aeeStatus: Request Changes
Supersedes my previous approval. @tobiu caught a merge-gate issue that my review missed: the migration removes
.agent, but leaves the Claude skill symlink bridge pointing at.agent.Finding
[P1] Claude skill symlinks break after
.agentis removed.Empirical check on head
2549aeefbe85ea7b2b21edf3ac0a627d3cf6608f:
.claude/skillsis byte-for-byte unchanged fromorigin/dev.- Example symlink target:
.claude/skills/pr-review -> ../../.agent/skills/pr-review..agent/skills/pr-reviewdoes not exist on this PR head..agents/skills/pr-reviewdoes exist.- Full audit: all 16 tracked
.claude/skills/*symlinks point to../../.agent/skills/*and are broken on this head.This means Claude would lose its skill discovery after the migration, even though Codex/Antigravity paths are updated.
Required Action
To proceed with merging, please address the following:
- Update all
.claude/skills/*symlinks to point at../../.agents/skills/<skill>instead of../../.agent/skills/<skill>, or otherwise preserve Claude skill resolution under the new canonical.agentslayout.- Re-run a symlink-resolution audit confirming every
.claude/skills/*target exists on the PR head.Verification Commands Used
git show origin/chore/10489-migrate-agents-folder:.claude/skills/pr-reviewreturned../../.agent/skills/pr-review.git cat-file -e origin/chore/10489-migrate-agents-folder:.agent/skills/pr-reviewfailed.git cat-file -e origin/chore/10489-migrate-agents-folder:.agents/skills/pr-reviewpassed.No approval can stand while Claude’s skill symlinks are broken.

Input from GPT-5.5 (Codex Desktop):
● ## PR Re-Review: #10491 head
1464392Status: Request Changes
The Claude symlink blocker is fixed: all 16
.claude/skills/*symlinks now point to../../.agents/skills/<skill>and resolve on the PR head. However, the broader post-merge path audit surfaced one remaining P1 blocker: the moved skill files still contain active.agent/skills/...router instructions even though this PR removes.agentfrom the tree.Context & Graph Linking
- Target Issue ID: Resolves #10489
- Related Graph Nodes: Progressive Disclosure Skills, harness startup context, Claude Code skill discovery, ContextAssembler skill loading, Memory Core filesystem ingestion
Depth Floor
Challenge: The branch now fixes the visible Claude symlink bridge, but it still misses the skill files as downstream consumers of the path migration. A skill can be discovered from
.agents/skills, then instruct the agent to read a nonexistent.agent/skills/...reference file.Rhetorical-Drift Audit: Fails narrowly. The PR body says internal reference pointers are migrated to
.agents, but active router text inside the moved skill files still points at.agent/skills/....Finding
[P1] Moved skill files still route agents to deleted
.agent/skillspaths. Examples on head14643920f65a148a1c531e833d809c7e7eae3689:
.agents/skills/pr-review/SKILL.md:8tells reviewers to read.agent/skills/pr-review/references/pr-review-guide.md..agents/skills/pull-request/SKILL.md:8tells PR authors to read.agent/skills/pull-request/references/pull-request-workflow.md..agents/skills/ticket-intake/SKILL.md:11tells agents to read.agent/skills/ticket-intake/references/ticket-intake-workflow.md..agents/skills/create-skill/references/skill-authoring-guide.md:79still showsln -sf ../../.agent/skills/my-new-skill .claude/skills/my-new-skill.
git ls-tree origin/chore/10489-migrate-agents-folder .agentreturns no.agenttree, so these are dead-path instructions after merge.Graph Ingestion Notes
[TOOLING_GAP]: The first local Playwright run hit sandboxEPERMbinding0.0.0.0:8080; rerun with approved escalation passed. This is environment friction, not a PR defect.[RETROSPECTIVE]: Directory migrations must audit both mechanical symlinks and instructional path literals inside the moved assets. The latter can break agent behavior even when runtime tests and symlink checks pass.Provenance Audit
N/A — repository layout normalization, not a new external abstraction.
Close-Target Audit
Pass.
Resolves #10489is newline-isolated, and #10489 carriesai,refactoring, andarchitecture, notepic.MCP-Tool-Description Budget Audit
Pass with note. The OpenAPI changes are path-reference substitutions only; no new tool-description narrative or budget bloat observed.
Wire-Format Compatibility Audit
N/A — no wire-format payloads changed.
Cross-Skill Integration Audit
Request changes. Skill discovery paths now resolve through
.agents, but the skill bodies still contain active.agent/skillsfollow-up paths and symlink-authoring examples.Required Actions
To proceed with merging, please address the following:
- Update active
.agent/skills/...references inside.agents/skills/**to.agents/skills/..., including top-levelSKILL.mdrouter instructions, reference-file links, and create-skill symlink examples.- Re-run a path-literal audit such as
git grep -n -F ".agent/" origin/chore/10489-migrate-agents-folder -- .agents/skills .github AGENTS.md AGENTS_STARTUP.md README.md ROADMAP.md ai learn .claude; remaining hits should be either gone or explicitly historical/non-operative.Evaluation Metrics
[ARCH_ALIGNMENT]: 85 - 15 points deducted because the canonical.agentsdirection is correct, but active skill-router paths still point at the removed canonical directory.[CONTENT_COMPLETENESS]: 80 - 20 points deducted because the PR body and moved skill documentation do not yet fully reflect the post-migration path reality.[EXECUTION_QUALITY]: 80 - 20 points deducted because whitespace, CI, tests, and symlinks are clean, but a P1 post-merge behavioral break remains for agents following skill instructions.[PRODUCTIVITY]: 85 - 15 points deducted because the primary migration is nearly complete, but the active skill-instruction surface still blocks #10489 completion.[IMPACT]: 60 - Substantive agent-workflow cleanup affecting all harnesses and skill discovery.[COMPLEXITY]: 60 - Medium: broad path migration across skill tree, startup docs, runtime discovery, Memory Core ingestion, and harness-specific skill bridges.[EFFORT_PROFILE]: Heavy Lift - Mostly mechanical, but high blast radius across agent lifecycle surfaces.Verified
- Refreshed remote state with
git fetch origin dev chore/10489-migrate-agents-folder.- Reviewed remote head
14643920f65a148a1c531e833d809c7e7eae3689against currentorigin/devat7e1bbc03bf745715e322bd243dd53360d242fa1a.- Commit subject:
chore(agents): migrate .agent to .agents directory (#10489).git diff origin/dev...origin/chore/10489-migrate-agents-folder --check: passes.gh pr view: merge stateCLEAN; CodeQL checks successful..claude/skillssymlink audit:AUDIT PASS: 16 .claude/skills symlinks checked.npm run test -- test/playwright/unit/ai/context/Assembler.spec.mjs:2 passed (825ms)after sandbox escalation.git grep -n -F ".agent/" ... -- .agents/skills ...: still finds active.agent/skillspath literals inside moved skill files.

Input from GPT-5.5 (Codex Desktop):
● ## PR Re-Review: #10491 head
5851ab7Status: Approved
The latest head resolves the remaining blockers. The Claude skill bridge now resolves under
.agents, the moved skill router instructions no longer point at deleted.agent/skills/...paths, and the branch remains scoped to the intended.agent->.agentsmigration.Context & Graph Linking
- Target Issue ID: Resolves #10489
- Related Graph Nodes: Progressive Disclosure Skills, harness startup context, Claude Code skill discovery, ContextAssembler skill loading, Memory Core filesystem ingestion
Depth Floor
Documented search: I actively re-checked active
.agent/path literals across.agents/skills, startup docs, runtime docs, AI server files, and.claude;.claude/skillssymlink resolution; accidental generated/data-resource churn; whitespace hygiene; commit-message format; close-target labels; OpenAPI description-budget drift; CodeQL status; and the targeted Assembler skill-loading test. No required concerns remain.Rhetorical-Drift Audit: Pass. The PR body says internal reference pointers are migrated to
.agents, and the current path-literal audit confirms no active.agent/references remain in the audited surfaces.Graph Ingestion Notes
[TOOLING_GAP]: Local Playwright verification requires sandbox escalation to let the test web server bind its port in this harness. This is environment friction, not a PR defect.[RETROSPECTIVE]: The Tobi merge-gate caught the cross-harness Claude symlink gap; the follow-up review expanded the migration checklist to include internal skill-router literals, which is the right audit shape for future directory migrations.Provenance Audit
N/A — repository layout normalization, not a new external abstraction.
Close-Target Audit
Pass.
Resolves #10489is newline-isolated, and #10489 carriesai,refactoring, andarchitecture, notepic.MCP-Tool-Description Budget Audit
Pass. The OpenAPI changes are path-reference substitutions only; no new tool-description narrative or budget bloat observed.
Wire-Format Compatibility Audit
N/A — no wire-format payloads changed.
Cross-Skill Integration Audit
Pass.
ContextAssembler, startup docs, Memory Core ingestion ignores,.claude/skillssymlinks, and moved skill router/reference paths now all point at the canonical.agentslayout.Required Actions
No required actions — eligible for human merge.
Evaluation Metrics
[ARCH_ALIGNMENT]: 100 - I actively considered stale skill-loader paths, harness-specific skill bridges, Memory Core ingestion paths, startup docs, and moved skill-router instructions and confirmed no required architecture gaps remain.[CONTENT_COMPLETENESS]: 95 - 5 points deducted only because the PR body remains concise rather than a full Fat Ticket; the implementation/docs now accurately describe the canonical.agentslayout.[EXECUTION_QUALITY]: 95 - 5 points deducted only because verification is targeted rather than a full suite run; diff hygiene, CodeQL, symlink audit, path-literal audit, and Assembler test all pass.[PRODUCTIVITY]: 100 - Achieves #10489 acceptance criteria: canonical.agentslayout,.agentremoval, and cross-harness path/config reference migration.[IMPACT]: 60 - Substantive agent-workflow cleanup affecting all harnesses and skill discovery.[COMPLEXITY]: 60 - Medium: broad path migration across skill tree, startup docs, runtime discovery, Memory Core ingestion, and harness-specific skill bridges.[EFFORT_PROFILE]: Heavy Lift - Mostly mechanical, but high blast radius across agent lifecycle surfaces.Verified
- Refreshed remote state with
git fetch origin dev chore/10489-migrate-agents-folder.- Reviewed remote head
5851ab70a540687787425252276c5da0e7b43b23against currentorigin/devat7e1bbc03bf745715e322bd243dd53360d242fa1a.- Commit subject:
chore(agents): migrate .agent to .agents directory (#10489).git diff --check origin/dev...origin/chore/10489-migrate-agents-folder: passes.git grep -n -F ".agent/" origin/chore/10489-migrate-agents-folder -- .agents/skills .github AGENTS.md AGENTS_STARTUP.md README.md ROADMAP.md ai learn .claude: no results.git ls-tree origin/chore/10489-migrate-agents-folder .agent: no.agenttree remains..claude/skillssymlink audit:AUDIT PASS: 16 .claude/skills symlinks checked.git diff --name-status origin/dev...origin/chore/10489-migrate-agents-folder: scoped to the.agent->.agentsmigration and related path references; no generated SQLite files, scratch scripts, or data-resource churn.npm run test -- test/playwright/unit/ai/context/Assembler.spec.mjs:2 passed (705ms).gh pr view: merge stateCLEAN; CodeQL checks successful.
Resolves #10489
Removes the
.agentto.agentssymlink bridge hack entirely. Migrates all skill files natively into the.agents/directory standard since the Codex context scaling work supports plural paths natively. Updates all internal reference pointers inAGENTS.md,AI_QUICK_START.md, and IDE configurations to point exclusively to the.agents/path.