diff --git a/CHANGELOG.md b/CHANGELOG.md index a57ba12..f573ae3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,71 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). +## [2.3.0] - 2026-04-18 + +### Added — Skill-factory Fase 1 MVP (`/ultra-skill-author-local`) + +Manual one-skill-at-a-time generator for the `cc-architect-catalog`. +Channel 2 of the skill-factory strategy: a curated local source enters, +one draft skill exits in `skills/cc-architect-catalog/.drafts/`, with +n-gram containment scored against the source and stamped into the +draft frontmatter (or the draft is deleted when overlap is too high). + +**Why now.** `/ultra-cc-architect-local` (v2.2.0) enforces a +hallucination gate that only permits feature proposals backed by the +catalog. With 10 seed skills covering 8 features × 2 layers, the +`feature-matcher` rarely finds a match and silently produces empty +proposals. Fase 1 unblocks catalog growth without spinning up +automation: one source, one draft, manual review, manual `mv` for +promotion. + +**Pipeline.** Sequential, no retry, no parallelism: + +``` +/ultra-skill-author-local + → concept-extractor (sonnet, JSON output, gap-class C/D + cc_feature gate) + → skill-drafter (sonnet, .drafts/.md with 9-field frontmatter) + → ip-hygiene-checker (sonnet, runs scripts/ngram-overlap.mjs) + verdict accepted/needs-review → stamp ngram_overlap_score + verdict rejected → rm draft (no preservation) +``` + +**IP-hygiene utility.** Pure Node stdlib. Word-5-gram containment +similarity (asymmetric draft⊆source) plus longest-consecutive-shingle- +run secondary signal. Verdict bands: accepted (<0.15 AND <8), +needs-review (mid), rejected (≥0.35 OR ≥15). Short-text fallback to +n=4 when min(words) <500. CLI emits JSON. + +**Calibration fixtures.** Three source/draft pairs in +`tests/fixtures/skill-factory/` pin the verdict bands against +representative prose: accepted (containment 0.014), needs-review +(0.211), rejected (0.676). Re-verify any threshold change against +these fixtures. + +**New files:** + +- `commands/ultra-skill-author-local.md` +- `agents/skill-author-orchestrator.md` (opus) +- `agents/concept-extractor.md` (sonnet) +- `agents/skill-drafter.md` (sonnet) +- `agents/ip-hygiene-checker.md` (sonnet) +- `scripts/ngram-overlap.mjs` + `scripts/ngram-overlap.test.mjs` +- `skills/cc-architect-catalog/.drafts/.gitkeep` +- `tests/fixtures/skill-factory/{source,draft}-{accepted,needs-review,rejected}.md` +- `tests/fixtures/skill-factory/README.md` + +**Non-goals (explicit, Fase 1):** + +- No automation, cron, or watcher +- No CC changelog diffing or auto-research +- No batch processing or review command +- No decision-layer skills (cross-feature comparison is Fase 2+) +- No URL or remote sources — local files only +- Manual `mv` from `.drafts/` to catalog root is the promotion mechanism + +**New stats file:** +`${CLAUDE_PLUGIN_DATA}/ultra-skill-author-local-stats.jsonl`. + ## [2.2.0] - 2026-04-18 ### Added — `/ultra-cc-architect-local` optional pipeline step diff --git a/README.md b/README.md index 1e0dbef..b93f905 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ A [Claude Code](https://docs.anthropic.com/en/docs/claude-code) plugin for deep | **`/ultra-cc-architect-local`** | Architect (optional) — match brief+research against available CC features; produce architecture note with explicit gaps | | **`/ultraplan-local`** | Plan — agent swarm exploration, Opus planning, adversarial review | | **`/ultraexecute-local`** | Execute — disciplined step-by-step implementation with failure recovery | +| **`/ultra-skill-author-local`** | Authoring (v2.3, skill-factory Fase 1) — generate one cc-architect-catalog draft from a local source with IP-hygiene | Every artifact lives in one project directory: `.claude/projects/{YYYY-MM-DD}-{slug}/` contains `brief.md`, `research/NN-*.md`, `architecture/overview.md` (+ `gaps.md`), `plan.md`, `sessions/`, and `progress.json`. @@ -395,6 +396,52 @@ The executor implements defense-in-depth security across four layers: --- +## `/ultra-skill-author-local` — Authoring *(skill-factory Fase 1, v2.3)* + +Manual one-skill-at-a-time generator for the `cc-architect-catalog`. Channel 2 of the skill-factory strategy: a curated local source enters, one draft skill exits in `skills/cc-architect-catalog/.drafts/` with its n-gram containment score against the source stamped into the frontmatter (or the draft is deleted when the overlap is too high). + +### Why it exists + +`/ultra-cc-architect-local` enforces a hallucination gate that only permits feature proposals backed by the catalog. With 10 seed skills covering 8 features × 2 layers, the matcher rarely finds support and silently produces empty proposals. This command grows the catalog without spinning up automation: one source → one draft → manual review → manual `mv` for promotion. + +### Pipeline + +Sequential, no retry, no parallelism: + +``` +/ultra-skill-author-local + → concept-extractor (sonnet) → JSON: cc_feature, layer, slug + → skill-drafter (sonnet) → .drafts/.md, 9-field frontmatter + → ip-hygiene-checker (sonnet) → runs scripts/ngram-overlap.mjs + verdict accepted/needs-review → stamp ngram_overlap_score + verdict rejected → rm draft (no preservation) +``` + +### Modes + +| Mode | Usage | Behavior | +|------|-------|----------| +| **Default** | `/ultra-skill-author-local ` | Run the pipeline (concept → draft → IP-hygiene) foreground | +| **`--fg`** | `/ultra-skill-author-local --fg` | Same as default; flag accepted for pipeline-convention consistency | +| **`--quick`** | `/ultra-skill-author-local --quick` | Skip IP-hygiene with BIG WARNING (drafting-pipeline test only) | + +### IP-hygiene utility + +`scripts/ngram-overlap.mjs` — pure Node stdlib, zero dependencies. Word-5-gram containment similarity (asymmetric draft⊆source) plus longest-consecutive-shingle-run secondary signal. Verdict bands: `accepted` (<0.15 AND <8), `needs-review` (mid), `rejected` (≥0.35 OR ≥15). Short-text fallback to n=4 when min(words) <500. CLI emits JSON. + +Calibration fixtures in `tests/fixtures/skill-factory/` pin the verdict bands against representative prose. Re-verify any threshold change against these fixtures. + +### Non-goals (explicit, Fase 1) + +- No automation, cron, or watcher +- No CC changelog diffing or auto-research +- No batch processing or review command +- No decision-layer skills (cross-feature comparison is Fase 2+) +- No URL or remote sources — local files only +- Manual `mv` from `.drafts/` to catalog root is the promotion mechanism + +--- + ## The full pipeline ```