{"slug":"agentify-project","title":"agentify-project","summary":"Make a project ready for AI agentic engineering by converging it toward a canonical agent-neutral structure — a lean AGENTS.md index with progressive disclosure, shared skills and gitignore hygiene. Re-runnable, and doubles as an audit.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-03T16:18:31.094891Z","repo":{"url":"https://github.com/eai-org/agent-toolkit","stars":50,"forks":11,"license":"MIT","updatedAt":"2026-09-22T15:49:40Z"},"bodyHtml":"<hr>\n<h2>name: agentify-project\ndescription: Make a project ready for AI agentic engineering by converging it toward a canonical agent-neutral structure — a lean AGENTS.md index with progressive disclosure, shared skills and gitignore hygiene. Re-runnable, and doubles as an audit.\ndisable-model-invocation: true\ntype: flow\nlicense: MIT\nmetadata:\nversion: \"0.1\"</h2>\n<h1>Agentify project</h1>\n<p>Converge a project — greenfield or half-way-there — toward the canonical agent-neutral structure\nspecified in <a href=\"references/target-structure.md\">references/target-structure.md</a> (read it before the\naudit), so a team of developers using different agents shares one lean, progressively disclosed\nsetup. Re-running converges further and reports drift.</p>\n<p>Invocation: <code>/agentify-project [audit] [path]</code></p>\n<ul>\n<li><code>audit</code> — run step 1 only, print the findings and what a full run would change, modify nothing;\nthe periodic drift check.</li>\n<li><code>path</code> — target a subdirectory instead of the repo root (see Monorepos).</li>\n</ul>\n<h2>Principles</h2>\n<ul>\n<li><strong>Ask, don't enforce</strong>: prefer asking — all options shown, one recommended — over enforcing a\nchoice, except for obvious easy wins (e.g. clear progressive-disclosure moves). Questions\nanswerable from the codebase go to the codebase.</li>\n<li>One approval gate per destructive/bulk change; show diffs or proposals before applying; nothing\nhappens behind the user's back. Never commit — suggest reviewing the diff and leave committing\nto the user.</li>\n<li>Generic: behavior is driven by <a href=\"references/agent-matrix.md\">references/agent-matrix.md</a> — read\nit whenever agent detection or an agent's specifics are needed. One documented exception, the\n<strong>Claude carve-out</strong>: a team with no Claude users at all is rare, so Claude wiring (the\nCLAUDE.md pointer, the <code>.claude/skills/</code> links, the Claude gitignore entries) is applied\nunconditionally, never detection-gated.</li>\n</ul>\n<h2>1. Audit (read-only)</h2>\n<ul>\n<li>Detect each target-structure area's state, and which agents are in use by their traces (matrix).</li>\n<li>Warn — never block — if the git working tree is dirty, so the user can commit first and keep\nthe restructure reviewable as an isolated diff.</li>\n<li>Detect nested entry files (monorepo packages).</li>\n<li>Diff duplicated entry files (agents without include syntax) against AGENTS.md; divergence\nbecomes a re-sync menu item — the one artifact class guaranteed to drift.</li>\n<li>Detect Claude-only assets (<code>.claude/commands/</code>, <code>.claude/agents/</code>, <code>.claude/rules/</code>): report,\nleave. Flag <code>.claude/rules/</code> content as candidate governing-doc material (path-scoped rules are\na Claude-specific disclosure mechanism); legacy commands may get a one-off note that they could\nbecome skills — the conversion itself is out of scope.</li>\n<li>Record entry-file line counts: menu annotations now, coarse before-figure for\n<code>/context-checkup</code> later.</li>\n</ul>\n<p>Done when every target-structure area has a detected state and every agent trace found is\naccounted for.</p>\n<h2>2. Menu</h2>\n<p>Multi-select over the applicable change areas only — entry-file indirection, AGENTS.md slimming\ninto docs, skills relocation + symlinks, gitignore hygiene, planning dir, onboarding doc, README\npointer — each annotated with audit findings (e.g. \"CLAUDE.md, 180 lines, no AGENTS.md →\nindirection + slimming\"). <strong>\"All\" is the first and recommended option.</strong> Report already-converged\nareas ✓ and omit them from the choices. Every area is independently skippable: a team may\ndeliberately stay Claude-only (no multi-agent support) — then apply the selected areas within the\nClaude-only variant in target-structure.md.</p>\n<h2>3. Execute — live, step by step</h2>\n<p>Apply each accepted area immediately, behind its approval gate — no migration-plan artifact: the\nmoves are mostly mechanical, and re-running converges. Suggested order: entry files →\nslimming/docs → skills → gitignore → extras.</p>\n<p><strong>Entry files.</strong> Invariant covering every starting state: the content of <strong>all</strong> existing entry\nfiles — any agent's, including a divergent CLAUDE.md + AGENTS.md pair — feeds the slimming\nmapping; AGENTS.md ends canonical; every detected entry file ends as a pointer (or duplicated\ncontent, per matrix), CLAUDE.md always included. Common case (CLAUDE.md exists, no AGENTS.md):\nrename it to AGENTS.md — git detects the rename — and recreate CLAUDE.md as <code>@AGENTS.md</code> plus any\ngenuinely Claude-specific remainder. AGENTS.md-only and third-party-only repos: same invariant —\ncreate the missing pointer(s), seed AGENTS.md from whatever entry-file content exists. Greenfield\n(no entry file of any agent): minimal seed from cheap reconnaissance (README, package manifest /\nbuild files) — one-liner, <strong>verified</strong> build/test/run commands, planning-dir convention — plus\nthe pointer; deep doc generation is out of scope, the structure grows later via <code>/self-improve</code>\nand <code>/memory-doctor</code>.</p>\n<p><strong>Slimming (mapping-first).</strong> Draft one full mapping: each block → stays / moves to existing doc\nX / new doc Y, applying the keep-vs-extract test (target-structure §1); where a block's relevance\nis verifiable from the codebase, check the code instead of asking. Present the mapping with\nobvious calls pre-decided; walk <strong>only doubtful blocks</strong> as individual questions, each with a\nrecommendation; one approval gate before any edit. Offer a compaction pass on blocks that stay;\nwrite extracted docs compact from birth — via <code>compact-docs-writer</code> when installed, else inline\nwith its core principle (least text, zero information loss). Each extracted doc gets a plain-link\nindex entry in AGENTS.md with its \"read when…\" hook.</p>\n<p><strong>Skills.</strong> Move real dirs, create relative symlinks (committed), per matrix; leave\nforeign/personal links untouched and report them.</p>\n<p><strong>Gitignore.</strong> Show the proposed block as a diff; apply on approval.</p>\n<p><strong>Extras.</strong> Planning dir + AGENTS.md convention line; onboarding doc; README pointer.</p>\n<p>Done when every selected area is applied or explicitly skipped by the user.</p>\n<h2>4. Verify (mechanical)</h2>\n<p>Every AGENTS.md reference resolves; symlinks point at real dirs; <code>git check-ignore</code> confirms each\nignore entry; CLAUDE.md pointer intact; duplicated entry files match AGENTS.md. Close with a\nshort converged-state report of what changed.</p>\n<h2>5. Close</h2>\n<p>Suggest, each only when installed and applicable — skip silently otherwise:</p>\n<ul>\n<li><code>/memory-doctor</code> — when the agent accumulates project memory (e.g. auto memory) — to relocate\nsaved lessons into the new docs structure and share them with the team; it no-ops harmlessly on\nempty memory, so no content check is needed.</li>\n<li><code>/context-checkup</code> — measure what now auto-loads, with the audit's entry-file line counts as\nthe coarse before-figure.</li>\n</ul>\n<h2>Monorepos</h2>\n<p>Full treatment targets the repo root. Nested entry files are offered only the cheap mechanical\nindirection (nested CLAUDE.md → nested AGENTS.md + pointer); defer nested slimming to a re-run\nwith that subdirectory as the <code>path</code> argument.</p>\n","files":[{"path":"references/agent-matrix.md","sizeBytes":2729,"isText":true},{"path":"references/target-structure.md","sizeBytes":5201,"isText":true},{"path":"SKILL.md","sizeBytes":6982,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"notes-only","suspicious":0,"notes":1,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-16T15:00:52.733447Z","sha256":"837F56410A8A29A121F2A4408EF7798A9823ECF4561128CEA14149B9EED64CF1","sizeBytes":7344},"review":null,"source":{"repositoryUrl":"https://github.com/eai-org/agent-toolkit","path":"skills/agentify-project","license":"MIT","commit":"192bc01cca8157dfb8eebf7b1ccf3c9fe8290e79","subtreeSha":"877750955254223641CD5D2C47853F1A35DA4739E8B9FBADBD00E06825972B71","lastSyncedAt":"2026-09-23T13:50:36.017597Z"},"reviewedAt":"2026-09-16T15:05:48.579559Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/eai-org/agent-toolkit/tree/main/skills/agentify-project"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install eai-org-agent-toolkit@llmmart"},{"target":"git","command":"git clone https://github.com/eai-org/agent-toolkit.git"}]}