tdmcp-roadmap-campaign — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited tdmcp-roadmap-campaign (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Drives _workspace/campaign_roadmap_v1/ROADMAP_1.0_BACKLOG.md to completion, gated by _workspace/campaign_roadmap_v1/ledger.json (idempotent, resumable, merge-safe). This is orchestration only — it never writes product code itself; it routes each ledger item to the existing specialist sub-harness and records the outcome back into the ledger.
tdmcp-backlog-campaign drives a tool-shaped backlog through one pipeline (design→build→integrate→QA→release). The road to 1.0 is not uniform: it mixes new tools (M4), a policy-bounded mixer slice (M5), a coverage CI gate (G2), a bridge exec→REST sweep (G4), docs/governance (G1/G5/G6 prep), and live-validated recipes (G3). Each needs a different specialist. This skill is the thin router that sequences them and keeps one ledger of truth.
[Unreleased]. Cutting the version is a manual user step — never tag autonomously ([[no-premature-release-tag]]).
quarantine*. Implement, pass the offline gates, set `live` to the right `UNVERIFIED-pending-` marker, keep going. Quarantine never blocks the campaign.
failure: retry once → quarantine-and-continue (note it in the wave report).
route → sub-harness)route | Sub-harness | Agents |
|---|---|---|
docs | tdmcp-docs-roadmap-update | roadmap-docs-editor, docs-cookbook-sync, docs-roadmap-qa |
tools | tdmcp-feature-lead | tdmcp-tool-builder ×N + single-writer integration |
mixer | tdmcp-pipeline | mixer-scene-contract-architect, soundcraft-ui24r-adapter-architect, mixer-policy-safety-qa |
coverage | tdmcp-test-coverage | tdmcp-coverage-writer, tdmcp-coverage-qa |
bridge | tdmcp-bridge-endpoint | tdmcp-bridge-engineer (sequential — bridge slices share files) |
recipes | tdmcp-pipeline | td-architect, td-builder, td-qa (needs live TD) |
submission | tdmcp-submission | submission-architect, submission-qa |
| planning | — | tdmcp-backlog-planner (wave computation + ledger transitions) |
ledger.json. If absent, the harness isn't initialized — (re)generate itfrom ROADMAP_1.0_BACKLOG.md and docs/ROADMAP.md, then stop and report.
already shipped a ledger item. For each pending item, cheaply verify it's genuinely undone (grep for the tool/file/gate) before assigning it. Flip already-done items to shipped with an event: reconciled history row.
pending,non-blocked items whose depends_on are all shipped. Honor the checkpoint_after_wave gate.
Spawn tdmcp-backlog-planner (opus) with the ledger + backlog. It returns: the exact item set for this wave, their routes, dependency-safe ordering, and the proposed ledger status transitions. Write its report to _workspace/campaign_roadmap_v1/wave_<n>_planner_report.md.
For each item, invoke its route sub-harness with a precise spec. Within a wave:
bridge items run sequentially (theyshare td-client/td/ files); within tools, builders are parallel but the integrator is the single writer of shared registries.
live quarantined per policy — do not wait on hardware.
Every sub-harness already runs its own gates; this skill does not re-implement them. Record per-item QA (typecheck/build/biome/vitest/recipes/bridge) into the ledger qa block, exactly like the project_rag campaign.
(npm run typecheck && npm run build && npm run lint && npm test, npm run validate:recipes, npm run test:bridge).
feature/roadmap-<wave-theme>).No tag, no version bump — CHANGELOG [Unreleased] only.
pending → shipped (or quarantined), stampqa, commit, and a history row. Write wave_<n>_report.md.
checkpoint_after_wave → stop and report;wait for the user before the next wave.
pendingnon-blocked item remains.
When only quarantine items remain, report campaign complete (offline scope) and enumerate what the user must do to actually tag 1.0: provide GPU/TOX components or a reachable TD for the UNVERIFIED-pending-* live validations, run the bench/hardware M5 spikes, submit to the Connectors Directory, and — only on the user's word — cut the tagged 1.0 minor (closing G1).
second failure, mark the item quarantined with the reason, leave the rest of the wave intact, and note it in the wave report — never delete partial work.
the drift. Never silently overwrite shipped work.
transition; write it atomically (full rewrite), never partial.
items → docs sub-harness ships all four → gates green → commit no-tag → checkpoint stop with a Wave-1 report.
g2_coverage_ci_gate alreadylanded on main → reconcile to shipped (event: reconciled) → skip it → plan the remainder of Wave 2.
m4_drive_streamdiffusion builds offline, gates green,but no GPU → ship with live: UNVERIFIED-pending-gpu, campaign continues.
proceeds with the rest, report flags the gap.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.