ktg-plugin-marketplace/docs/marketplace-polyrepo-migration/migration/plugin-map.json
Kjell Tore Guttormsen 690bbbd68d fix(migration): config-audit SC2 gate (re-seed + back-compat exclusion) + generic validator
50-config-audit-sc2.sh: re-seeds snapshot-default-output in-clone (UPDATE_SNAPSHOT=1), then runs the SC2 gate = full 'find tests -name *.test.mjs' MINUS the 6-file machine-locked v5.0.0 byte-stability surface. 730 tests across 46 files pass standalone.

templates/validate-plugin.generic.sh: ported, parameterized structure validator for the two test-less plugins (okr, human-friendly-style) — STRUCTURE OK on valid plugin.json + non-empty surface + parseable frontmatter; STRUCTURE FAIL otherwise. Reuses the claude-design/tests/validate-plugin.sh pattern.

Brief-correction (operator-ratified 2026-06-17): plan F4 named only json-backcompat + raw-backcompat (2 files). The verified machine-locked surface is 6 — the v5.0.0 fixtures embed the original absolute path AND the claude_md/plugin_hygiene scanners key off a plugins/ ancestor, so findings drift by path (behavioral, not a string rewrite). Dropped clean-room SC2 coverage = config-audit's humanizer/posture-humanizer/scan-orchestrator-humanizer prose-snapshot surface, recorded in the script header + plugin-map.json (not silent). The 3 other v5.0.0-referencing tests (posture, scoring-humanizer, scenario-read-test) are path-independent and stay in the gate. config-audit backlog (out of migration scope): normalize the v5.0.0 fixtures + path-agnostic scanners, then re-include.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 13:23:38 +02:00

141 lines
7.4 KiB
JSON

{
"_comment": "Rename-aware extraction map for the polyrepo migration. Tags come from each plugin's .claude-plugin/plugin.json version (verified 2026-06-17), NOT from README/CLAUDE.md (which the migration corrects, Step 9). 11 targets = 10 plugins + the design-system. URLs are HTTPS (F2, #9740). Renamed plugins carry >=2 paths (F1). blob_strip_safe is (re)computed by 00-preflight.sh against the mirror history.",
"drop": ["plugins/ultra-cc-architect/"],
"targets": {
"ai-psychosis": {
"paths": ["plugins/ai-psychosis/"],
"path_renames": { "plugins/ai-psychosis/": "" },
"tag": "v1.2.0",
"repo_url": "https://git.fromaitochitta.com/open/ai-psychosis.git",
"has_vendor_ds": false,
"blob_strip": false,
"blob_strip_safe": null,
"test_cmd": "node --test 'tests/**/*.test.mjs'",
"standalone_caveat": "runs from repo root (relative-fixture cwd)"
},
"claude-design": {
"paths": ["plugins/claude-design/"],
"path_renames": { "plugins/claude-design/": "" },
"tag": "v0.1.0",
"repo_url": "https://git.fromaitochitta.com/open/claude-design.git",
"has_vendor_ds": false,
"blob_strip": false,
"blob_strip_safe": null,
"test_cmd": "bash tests/validate-plugin.sh",
"standalone_caveat": "structure check via validate-plugin.sh (no unit suite)"
},
"config-audit": {
"paths": ["plugins/config-audit/"],
"path_renames": { "plugins/config-audit/": "" },
"tag": "v5.1.0",
"repo_url": "https://git.fromaitochitta.com/open/config-audit.git",
"has_vendor_ds": false,
"blob_strip": false,
"blob_strip_safe": null,
"test_cmd": "node --test 'tests/**/*.test.mjs'",
"sc2_gate": "50-config-audit-sc2.sh",
"standalone_caveat": "SC2 gate = full tests/**/*.test.mjs MINUS the 6-file machine-locked v5.0.0 byte-stability surface (json-backcompat, raw-backcompat, cli-humanizer, posture-humanizer, scan-orchestrator-humanizer, lint-default-output), re-seeding snapshot-default-output via UPDATE_SNAPSHOT=1 in-clone. Operator-ratified 2026-06-17 brief-correction: plan F4 named only 2 files; the verified surface is 6 (the v5.0.0 fixtures embed the original abs path AND the claude_md/plugin_hygiene scanners key off a plugins/ ancestor, so findings drift by path — not a string rewrite). DROPPED clean-room SC2 coverage = config-audit's humanizer/posture-humanizer/scan-orchestrator-humanizer prose-snapshot surface (recorded, not silent). config-audit backlog (out of migration scope): normalize the v5.0.0 fixtures' embedded paths + make scanners path-agnostic, then re-include. The 3 other v5.0.0-referencing tests (posture, scoring-humanizer, scenario-read-test) are path-independent and stay in the gate."
},
"graceful-handoff": {
"paths": ["plugins/graceful-handoff/"],
"path_renames": { "plugins/graceful-handoff/": "" },
"tag": "v2.1.0",
"repo_url": "https://git.fromaitochitta.com/open/graceful-handoff.git",
"has_vendor_ds": false,
"blob_strip": false,
"blob_strip_safe": null,
"test_cmd": "node --test 'tests/**/*.test.mjs'",
"standalone_caveat": "pilot candidate (low-churn, has tests, no DS, no blob bloat)"
},
"human-friendly-style": {
"paths": ["plugins/human-friendly-style/"],
"path_renames": { "plugins/human-friendly-style/": "" },
"tag": "v1.1.0",
"repo_url": "https://git.fromaitochitta.com/open/human-friendly-style.git",
"has_vendor_ds": false,
"blob_strip": false,
"blob_strip_safe": null,
"test_cmd": "bash validate-plugin.generic.sh human-friendly-style",
"standalone_caveat": "no unit suite — ported generic structure validator (Step 7)"
},
"linkedin-studio": {
"paths": ["plugins/linkedin-studio/", "plugins/linkedin-thought-leadership/"],
"path_renames": {
"plugins/linkedin-studio/": "",
"plugins/linkedin-thought-leadership/": ""
},
"tag": "v0.4.0",
"repo_url": "https://git.fromaitochitta.com/open/linkedin-studio.git",
"has_vendor_ds": false,
"blob_strip": false,
"blob_strip_safe": null,
"test_cmd": "node --test hooks/scripts/__tests__/*.test.mjs render/__tests__/*.test.mjs agents/__tests__/*.test.mjs",
"test_cmd_advisory": "cd scripts/analytics && npm install && npm test",
"standalone_caveat": "renamed from linkedin-thought-leadership (F1). SC2 two-tier (M11): .mjs core is the HARD gate (zero deps); TS analytics suite is ADVISORY (npm/network required, NOT a clean-room gate)"
},
"llm-security": {
"paths": ["plugins/llm-security/", "plugins/llm-security-copilot/"],
"path_renames": {
"plugins/llm-security/": "",
"plugins/llm-security-copilot/": ""
},
"tag": "v7.7.2",
"repo_url": "https://git.fromaitochitta.com/open/llm-security.git",
"has_vendor_ds": true,
"blob_strip": false,
"blob_strip_safe": null,
"test_cmd": "node --test 'tests/**/*.test.mjs'",
"standalone_caveat": "renamed from llm-security-copilot (F1); vendors the design-system (playground)"
},
"ms-ai-architect": {
"paths": ["plugins/ms-ai-architect/"],
"path_renames": { "plugins/ms-ai-architect/": "" },
"tag": "v1.15.0",
"repo_url": "https://git.fromaitochitta.com/open/ms-ai-architect.git",
"has_vendor_ds": true,
"blob_strip": true,
"blob_strip_safe": true,
"test_cmd": "bash tests/validate-plugin.sh",
"standalone_caveat": "148 MB screenshot blob-bomb (F3): single filter-repo pass strips >1MB blobs when blob_strip_safe (all under playground/screenshots/), else surgical --path-glob; vendors the design-system"
},
"okr": {
"paths": ["plugins/okr/"],
"path_renames": { "plugins/okr/": "" },
"tag": "v1.3.0",
"repo_url": "https://git.fromaitochitta.com/open/okr.git",
"has_vendor_ds": false,
"blob_strip": false,
"blob_strip_safe": null,
"test_cmd": "bash validate-plugin.generic.sh okr",
"standalone_caveat": "no unit suite — ported generic structure validator (Step 7). okr/templates/okr.local.md.template is intentionally tracked (SC7 allow-exception)"
},
"voyage": {
"paths": ["plugins/voyage/", "plugins/ultraplan-local/"],
"path_renames": {
"plugins/voyage/": "",
"plugins/ultraplan-local/": ""
},
"tag": "v5.1.1",
"repo_url": "https://git.fromaitochitta.com/open/voyage.git",
"has_vendor_ds": false,
"blob_strip": false,
"blob_strip_safe": null,
"test_cmd": "node --test 'tests/**/*.test.mjs'",
"standalone_caveat": "renamed from ultraplan-local (F1, 136 pre-rename commits). Carries .forgejo/ISSUE_TEMPLATE/ under --path — assert it survives, no monorepo-relative refs (M17)"
},
"playground-design-system": {
"paths": ["shared/playground-design-system/", "shared/playground-examples/"],
"path_renames": {
"shared/playground-design-system/": "",
"shared/playground-examples/": "playground-examples/"
},
"tag": "v0.6.0",
"repo_url": "https://git.fromaitochitta.com/open/playground-design-system.git",
"has_vendor_ds": false,
"blob_strip": false,
"blob_strip_safe": null,
"test_cmd": "bash -c 'test -f tokens.css && test -f base.css && test -d schemas'",
"standalone_caveat": "DS source repo (the 2 consumers are llm-security + ms-ai-architect). Receives sync-design-system.mjs + test + PLAYGROUND-MAINTENANCE.md at standup (Step 4)"
}
}
}