Skip to content

feat(telemetry-sweep): F-013 — per-skill references via PR #6 mechanism - #16

Merged
MountainUnicorn merged 3 commits into
mainfrom
feat/telemetry-skill-reference-sweep
Apr 27, 2026
Merged

feat(telemetry-sweep): F-013 — per-skill references via PR #6 mechanism#16
MountainUnicorn merged 3 commits into
mainfrom
feat/telemetry-skill-reference-sweep

Conversation

@MountainUnicorn

Copy link
Copy Markdown
Owner

Summary

Closes Swarm F's M3-deferred per-skill telemetry reference sweep (F-013) using Path A — the references: frontmatter mechanism that PR #6 unblocked when it merged at 3522a8f on 2026-04-26.

Every core/skills/*/SKILL.md now declares rules/telemetry.md in its references: array. The contract documented in core/rules/telemetry.md is now discoverable from any individual SKILL.md, and a coverage test gates against future skills shipping without the reference.

  • 17 skills got a fresh references: ["rules/telemetry.md"] entry (agents-md, away, back, brand, changelog, implementer, init, learnings, milestone, optimize, plan, promote, reviewer, roadmap, spec, test-writer, version)
  • 10 skills had rules/telemetry.md appended to existing references lists (cycle, verify, deploy, docs, retro, tdd-cycle, infographic, dashboard, brand-update, ux) — preserving existing entries and order
  • This is the deferred sweep from Swarm F (v0.9.0 telemetry-jsonl PR) that was held back during M3 because every Wave-2/Wave-3 swarm was modifying SKILL.md files; with M3 merged, the file-set is quiet.

No body changes. No behavior changes. No schema additions. plugins/add/ regenerated via scripts/compile.py. dist/codex/ skill output is unchanged because Codex projection strips both allowed-tools and references: — same behavior the codex adapter already had.

Path A confirmed (PR #6 mechanism)

Path B (body-prose @reference line) was the documented fallback. We're past that gate — Path A is live.

AC Checklist

  • AC-001a — Every core/skills/*/SKILL.md declares rules/telemetry.md in references: (Path A)
  • AC-002ascripts/validate-frontmatter.py accepts the key (PR perf: Refactor rules and knowledge for on-demand loading and context window reduction #6 schema)
  • AC-003areferences: is a list; existing entries preserved; ordering preserved
  • AC-010 — All 27 skills carry the declaration
  • AC-011 — No implicit-emission shortcut: every skill is explicit (sub-agent skills reviewer/test-writer/implementer/verify each carry their own reference)
  • AC-012 — Spec § 7 audit checklist enumerates all 27 skills with status
  • AC-013 — No skips; all swept
  • AC-015 — No skill behavior change (single-line frontmatter edit per file)
  • AC-020 — Coverage test exists at tests/telemetry-sweep/test-skill-reference-coverage.sh
  • AC-021 — Test fails when a skill ships without the reference (RED bar verified pre-sweep)
  • AC-022 — Test runs in <2s (pure bash + python YAML parse)
  • AC-023python3 scripts/compile.py --check clean
  • AC-024python3 scripts/validate-frontmatter.py clean

Test plan

  • bash tests/telemetry-sweep/test-skill-reference-coverage.sh — 31 pass, 0 fail (4 fixture self-tests + 27 skill assertions)
  • python3 scripts/validate-frontmatter.py — all frontmatter valid
  • python3 scripts/compile.py --check — compile output matches committed artifacts
  • bash tests/hooks/test-filter-learnings.sh — 4 passed
  • bash tests/test-deletion-guardrail/test-test-deletion-guardrail.sh — 16 passed
  • bash tests/codex-install/test-install-paths.sh — 7 passed
  • bash tests/cache-discipline/test-cache-discipline.sh — 7 passed
  • bash tests/secrets-handling/test-secrets-handling.sh — 12 passed
  • bash tests/agents-md-sync/test-agents-md-sync.sh — 8 passed
  • bash tests/telemetry-jsonl/test-telemetry-jsonl.sh — 12 passed
  • bash tests/security/test-prompt-injection-defense.sh — 11 passed
  • bash tests/rule-parity/test-rule-parity.sh — 5 passed

Commits

  1. test(telemetry-sweep): coverage fixture for per-skill references — RED bar with self-testing fixtures
  2. feat(skills): F-013 — declare references: rules/telemetry.md across all 27 skills — GREEN sweep + regenerated plugins/add/
  3. docs(spec): telemetry-skill-reference-sweep audit checklist filled — § 7 audit + CHANGELOG [Unreleased]

Closes F-013 from plugin-family-release-hardening review.

🤖 Generated with Claude Code

MountainUnicorn and others added 3 commits April 26, 2026 22:06
F-013 RED bar. Iterates core/skills/*/SKILL.md, parses YAML frontmatter,
and asserts each skill's references: array contains rules/telemetry.md
(Path A — the PR #6 mechanism). Fails today because no skill declares
the reference yet; will pass after the sweep lands.

Self-tests against four fixtures (has, has-multi, missing, no-key) so
the matcher itself is defended.

Spec: specs/telemetry-skill-reference-sweep.md AC-020..022
Plan: docs/plans/telemetry-skill-reference-sweep-plan.md § Phase 1

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ll 27 skills

Closes Swarm F's M3-deferred per-skill telemetry reference sweep. Every
core/skills/*/SKILL.md now declares `rules/telemetry.md` in its
`references:` frontmatter array via the PR #6 mechanism (Path A).

- 17 skills get a fresh `references: ["rules/telemetry.md"]` entry
  (agents-md, away, back, brand, changelog, implementer, init,
  learnings, milestone, optimize, plan, promote, reviewer, roadmap,
  spec, test-writer, version)
- 10 skills append `rules/telemetry.md` to existing references lists
  (cycle, verify, deploy, docs, retro, tdd-cycle, infographic,
  dashboard, brand-update, ux) — preserves existing entries and order

The contract documented in core/rules/telemetry.md is now discoverable
from any individual SKILL.md. Coverage gated by
tests/telemetry-sweep/test-skill-reference-coverage.sh.

No body changes. No behavior changes. No schema additions. plugins/add/
regenerated via scripts/compile.py; codex output unchanged
(`references:` is stripped during codex frontmatter projection — same
behavior as `allowed-tools`).

Spec: specs/telemetry-skill-reference-sweep.md — AC-001a, AC-003a,
AC-010, AC-011, AC-014, AC-015, AC-023, AC-024 satisfied.
PR #6 (merged 2026-04-26 at 3522a8f) unblocked Path A.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Flips § 7 audit from 27× pending → 27× swept with per-skill notes
(fresh entry vs. appended). Records the 10 skills that already had
`references:` pre-sweep (cycle, verify, deploy, docs, retro, tdd-cycle,
infographic, dashboard, brand-update, ux) vs. the 17 that got fresh
entries. Bumps spec status Draft → Shipped (Path A), revises target
release v0.9.2 → v0.9.3, and adds a v1.0.0 revision-history entry
crediting PR #6 as the unblocker.

CHANGELOG [Unreleased] gets a `### Changed` entry summarizing the
sweep for the next v0.9.x release notes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@MountainUnicorn
MountainUnicorn force-pushed the feat/telemetry-skill-reference-sweep branch from 9e3daed to aaa0161 Compare April 27, 2026 02:07
@MountainUnicorn
MountainUnicorn merged commit a8dad4c into main Apr 27, 2026
15 checks passed
@MountainUnicorn
MountainUnicorn deleted the feat/telemetry-skill-reference-sweep branch April 27, 2026 02:08
MountainUnicorn added a commit that referenced this pull request Apr 27, 2026
Three plugin-family-review follow-ups bundled:

- F-017 (#15) — jq declared as a documented runtime dependency. Strategy
  A: honest qualifier in README/CONTRIBUTING/PRD/marketplace.json, new
  docs/runtime-dependencies.md with per-OS install matrix, CI guard
  preventing the bare claim from regressing.
- F-013 (#16) — telemetry per-skill reference sweep. Closes Swarm F's
  M3-deferred sweep via Path A (PR #6's references: frontmatter
  mechanism, now live). All 27 SKILL.md files now declare
  rules/telemetry.md; coverage test gates against future drift.
- F-014 (#17) — executable secrets scanner. Closes the v0.9.0
  declarative-gate gap. New core/lib/scan-secrets.sh + JSON pattern
  catalog + .secretsignore + override-trailer + advisory PreToolUse
  hook. Hard-block deferred to v0.10 pending F-012 hook-feedback
  semantics.

Plus: cross-OS portability fixes in scan-secrets.sh caught by the new
guardrails CI matrix (set -e + `[ ] && X` short-circuits firing on
Linux bash 5+ but not macOS bash 3.2; ${#ARRAY[@]:-0} malformed
default operator). Documented in commit messages on the feature branch.

122 tests across 12 fixture suites — all green at v0.9.3.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant