Ecosystem Autopsy Open the ecosystem on the table, map every directory, classify every repository, and emit the signals that bring drifting work back under canonical governance. Authority boundary (read first) This skill orchestrates the canonical surfaces already shipped in the ORGANVM substrate. It does not re-implement them. - Governance state machine — defined in . Do not restate. Invoke. - IRF queries — exposed via . Do not fabricate a parallel registry. - Ecosystem inventory + lifecycle scoring — exposed via . Do not duplicate. - Post-migration verification — defer to . Do not execute r…

\\\n | sort -u > \"$registered_repos\"\n\nfor path in \"$@\"; do\n if [[ ! -d \"$path\" ]]; then\n echo \"skip: $path is not a directory\" >&2\n continue\n fi\n\n find \"$path\" -type d -name .git -not -path '*/node_modules/*' -not -path '*/.venv/*' 2>/dev/null \\\n | while read -r git_dir; do\n repo_root=\"$(dirname \"$git_dir\")\"\n repo_name=\"$(basename \"$repo_root\")\"\n if ! grep -Fxq \"$repo_name\" \"$registered_repos\"; then\n printf '%s\\n' \"$repo_root\"\n fi\n done\ndone | sort -u\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":1417,"content_sha256":"bf96b4433189c2f1438cddd7431495f8eba53b9d0ae382c35c2a1c32e1010b97"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Ecosystem Autopsy","type":"text"}]},{"type":"paragraph","content":[{"text":"Open the ecosystem on the table, map every directory, classify every repository, and emit the signals that bring drifting work back under canonical governance.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Authority boundary (read first)","type":"text"}]},{"type":"paragraph","content":[{"text":"This skill ","type":"text"},{"text":"orchestrates","type":"text","marks":[{"type":"strong"}]},{"text":" the canonical surfaces already shipped in the ORGANVM substrate. It does not re-implement them.","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Governance state machine","type":"text","marks":[{"type":"strong"}]},{"text":" — defined in ","type":"text"},{"text":"promotion-readiness-checklist","type":"text","marks":[{"type":"link","attrs":{"href":"../../project-management/promotion-readiness-checklist/SKILL.md","title":null}},{"type":"code_inline"}]},{"text":". Do not restate. Invoke.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"IRF queries","type":"text","marks":[{"type":"strong"}]},{"text":" — exposed via ","type":"text"},{"text":"organvm irf {list,status,stats}","type":"text","marks":[{"type":"code_inline"}]},{"text":". Do not fabricate a parallel registry.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ecosystem inventory + lifecycle scoring","type":"text","marks":[{"type":"strong"}]},{"text":" — exposed via ","type":"text"},{"text":"organvm ecosystem {audit,list,actions,lifecycle,staleness,coverage}","type":"text","marks":[{"type":"code_inline"}]},{"text":". Do not duplicate.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Post-migration verification","type":"text","marks":[{"type":"strong"}]},{"text":" — defer to ","type":"text"},{"text":"qa-audit","type":"text","marks":[{"type":"link","attrs":{"href":"../qa-audit/SKILL.md","title":null}},{"type":"code_inline"}]},{"text":". Do not execute remediation; stop at the signal.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"If an autopsy step appears to require new state-machine definitions, IRF schema, or inventory logic, the substrate already has it. Search before authoring. See ","type":"text"},{"text":"references/integration-map.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" for the surface-by-surface mapping.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"When to use","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"Run an auto-autopsy on the workspace\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"Map all directories under ~/Code and ~/Workspace\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"Find every repo that's still LOCAL-only\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"Send the signal to unite all of these under the new governance\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"Triage what's drifting before we consolidate\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"After a long period (~30d+) without ecosystem-wide review","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Before a multi-repo consolidation, rename, or org migration","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Workflow","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Phase 1 — Discovery (registered + unregistered)","type":"text"}]},{"type":"paragraph","content":[{"text":"Run the canonical inventory:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"organvm ecosystem --workspace ~/Workspace --workspace ~/Code audit\norganvm ecosystem --workspace ~/Workspace --workspace ~/Code list","type":"text"}]},{"type":"paragraph","content":[{"text":"These cover repositories already known to the eight-organ registry.","type":"text"}]},{"type":"paragraph","content":[{"text":"For paths ","type":"text"},{"text":"outside","type":"text","marks":[{"type":"strong"}]},{"text":" the registry (transient skill caches, ","type":"text"},{"text":"~/Documents","type":"text","marks":[{"type":"code_inline"}]},{"text":", scratch dirs, ad-hoc clones), supplement with:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"bash scripts/discover_unregistered.sh ~/Workspace ~/Code ~/Documents","type":"text"}]},{"type":"paragraph","content":[{"text":"The helper lists git repos found on disk that are absent from ","type":"text"},{"text":"organvm ecosystem list","type":"text","marks":[{"type":"code_inline"}]},{"text":" output. These are the autopsy's primary finds — directories the canonical inventory doesn't yet know about.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Phase 2 — Triage (priority + IRF cross-reference)","type":"text"}]},{"type":"paragraph","content":[{"text":"Get the canonical prioritized next-action list:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"organvm ecosystem --workspace ~/Workspace --workspace ~/Code actions --json","type":"text"}]},{"type":"paragraph","content":[{"text":"For each high-priority repo, cross-reference open IRF items by owner/domain:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"organvm irf list --status open --owner \u003corgan-or-substring> --json\norganvm irf list --domain \u003cdomain-code> --status open --json","type":"text"}]},{"type":"paragraph","content":[{"text":"A repo is ","type":"text"},{"text":"truly drifting","type":"text","marks":[{"type":"strong"}]},{"text":" when it appears in ","type":"text"},{"text":"ecosystem actions","type":"text","marks":[{"type":"code_inline"}]},{"text":" AND has no open IRF row tracking the drift. That gap is the signal worth emitting.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Phase 3 — State assessment (defer to canonical authority)","type":"text"}]},{"type":"paragraph","content":[{"text":"For each repo flagged in Phase 2, invoke ","type":"text"},{"text":"promotion-readiness-checklist","type":"text","marks":[{"type":"code_inline"}]},{"text":" to assess current governance state and the evidence required to advance. Do NOT classify states from this skill. The state machine (LOCAL → CANDIDATE → PUBLIC_PROCESS → GRADUATED) and its evidence requirements (seed.yaml schema fields, LICENSE, README, CI, branch protection, etc.) live there.","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"organvm ecosystem --workspace ~/Workspace --workspace ~/Code lifecycle \u003crepo>","type":"text"}]},{"type":"paragraph","content":[{"text":"organvm ecosystem lifecycle","type":"text","marks":[{"type":"code_inline"}]},{"text":" reports the current lifecycle stage as the ecosystem module sees it. Use it to confirm before invoking the checklist skill.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Phase 4 — Migration signal (emit, do not execute)","type":"text"}]},{"type":"paragraph","content":[{"text":"For each repo with a confirmed state and a clear next-state target, emit a signal record (JSON, written to ","type":"text"},{"text":"autopsy/signals/\u003ctimestamp>.json","type":"text","marks":[{"type":"code_inline"}]},{"text":" in the user-chosen working directory):","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"json"},"content":[{"text":"{\n \"signal_type\": \"migration\",\n \"repo\": \"\u003crepo-name>\",\n \"current_state\": \"LOCAL\",\n \"target_state\": \"CANDIDATE\",\n \"evidence_gaps\": [\"seed.yaml missing\", \"no LICENSE\", \"no remote\"],\n \"invoke\": \"repo-onboarding-flow\",\n \"irf_gap\": true,\n \"emitted_at\": \"\u003cISO-8601>\"\n}","type":"text"}]},{"type":"paragraph","content":[{"text":"Signals route to the right downstream skill:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"LOCAL → CANDIDATE: invoke ","type":"text"},{"text":"repo-onboarding-flow","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"CANDIDATE → PUBLIC_PROCESS or PUBLIC_PROCESS → GRADUATED: invoke ","type":"text"},{"text":"promotion-readiness-checklist","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"IRF gap: emit an IRF-row proposal (do not auto-write — IRF mutations require user authorization per ORGANVM constitutional rules)","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"This skill ","type":"text"},{"text":"stops at signal emission","type":"text","marks":[{"type":"strong"}]},{"text":". Execution belongs to the downstream skill the signal names.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Phase 5 — Verification (defer to qa-audit)","type":"text"}]},{"type":"paragraph","content":[{"text":"After downstream skills execute (in a separate session or under explicit user go), invoke ","type":"text"},{"text":"qa-audit","type":"text","marks":[{"type":"code_inline"}]},{"text":" to verify that the claimed transitions match disk reality. The autopsy's signal file is the verification target.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"What this skill explicitly does NOT do","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Restate or redefine governance states","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Walk directory trees with bespoke Python (use ","type":"text"},{"text":"organvm ecosystem","type":"text","marks":[{"type":"code_inline"}]},{"text":" + ","type":"text"},{"text":"discover_unregistered.sh","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Mutate IRF, seed.yaml, or any governance file (signals only)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Execute git operations (push, branch, remote add) — those belong to ","type":"text"},{"text":"repo-onboarding-flow","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Verify its own claims — that's ","type":"text"},{"text":"qa-audit","type":"text","marks":[{"type":"code_inline"}]},{"text":"'s job","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Scripts","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"scripts/discover_unregistered.sh","type":"text","marks":[{"type":"code_inline"}]},{"text":" — list git repos on disk that are absent from ","type":"text"},{"text":"organvm ecosystem list","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"References","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"references/integration-map.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" — phase-by-phase mapping to canonical surfaces","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Anti-patterns","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Authoring a ","type":"text"},{"text":"governance-states.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" reference in this skill (the source of truth is ","type":"text"},{"text":"promotion-readiness-checklist","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Writing Python that walks directories for inventory (the canonical CLI does this)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Auto-writing IRF rows (mutations require explicit user authorization)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Treating signals as commitments (signals are proposals; execution is a separate authorization)","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}}]},"metadata":{"date":"2026-06-05","name":"ecosystem-autopsy","tags":["autopsy","ecosystem","migration","governance","discovery","signal"],"tier":"core","author":"@skillopedia","source":{"stars":8,"repo_name":"a-i--skills","origin_url":"https://github.com/4444j99/a-i--skills/blob/HEAD/skills/tools/ecosystem-autopsy/SKILL.md","repo_owner":"4444j99","body_sha256":"deaf1009a80b42c5d183f41d9d92d000c5453ba8727ffac98146648548d903ed","cluster_key":"5af4e1d5f42e2375194890b4178269aa5409626ae84f5e9962231e9b7d56f3e9","clean_bundle":{"format":"clean-skill-bundle-v1","source":"4444j99/a-i--skills/skills/tools/ecosystem-autopsy/SKILL.md","attachments":[{"id":"90f69974-efec-5863-bff1-948458a9f299","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/90f69974-efec-5863-bff1-948458a9f299/attachment.md","path":"references/integration-map.md","size":3625,"sha256":"fd89c06eef1e0ebbd5a9993868ee655c25a540236756d28ac84baa9b7a285c88","contentType":"text/markdown; charset=utf-8"},{"id":"44638d37-e180-5e21-b125-bbadce598701","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/44638d37-e180-5e21-b125-bbadce598701/attachment.sh","path":"scripts/discover_unregistered.sh","size":1417,"sha256":"bf96b4433189c2f1438cddd7431495f8eba53b9d0ae382c35c2a1c32e1010b97","contentType":"application/x-sh; charset=utf-8"}],"bundle_sha256":"1331798d6e0767a5238aacd828e443b6e0c51594f132bdbec1af3c53103d12ef","attachment_count":2,"text_attachments":2,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":0,"excluded_attachments":[]},"cluster_size":5,"skill_md_path":"skills/tools/ecosystem-autopsy/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"software-engineering","category_label":"Engineering"},"exact_dupes_collapsed_into_this":4},"license":"MIT","version":"v1","category":"software-engineering","triggers":["user-asks-for-auto-autopsy","user-asks-to-map-all-directories","context:ecosystem-discovery","context:governance-migration","context:directory-mapping","context:unite-under-new-governance"],"complexity":"intermediate","import_tag":"clean-skills-v1","complements":["promotion-readiness-checklist","qa-audit","repo-onboarding-flow","organvm-governance-pack","github-repository-standards"],"description":"Orchestrate a full directory-graph autopsy across an ORGANVM workspace, then emit migration signals that unite repositories under canonical governance. Thin wrapper over organvm ecosystem + organvm irf + promotion-readiness-checklist. Triggers on auto-autopsy, map all directories, governance migration, ecosystem discovery, or \"send the signal to unite\" requests.","time_to_learn":"30min","organ_affinity":["all"],"governance_phases":["frame","shape"],"governance_norm_group":"repo-hygiene"}},"renderedAt":1782980973236}

Ecosystem Autopsy Open the ecosystem on the table, map every directory, classify every repository, and emit the signals that bring drifting work back under canonical governance. Authority boundary (read first) This skill orchestrates the canonical surfaces already shipped in the ORGANVM substrate. It does not re-implement them. - Governance state machine — defined in . Do not restate. Invoke. - IRF queries — exposed via . Do not fabricate a parallel registry. - Ecosystem inventory + lifecycle scoring — exposed via . Do not duplicate. - Post-migration verification — defer to . Do not execute r…