Skip to content

feat: add_component — lift a starter's CI/CD layer into an existing repo#56

Merged
heznpc merged 1 commit into
mainfrom
feat/add-component
Jun 10, 2026
Merged

feat: add_component — lift a starter's CI/CD layer into an existing repo#56
heznpc merged 1 commit into
mainfrom
feat/add-component

Conversation

@heznpc

@heznpc heznpc commented Jun 10, 2026

Copy link
Copy Markdown
Member

Closes the roadmap's highest-leverage item: the remediation half of the audit loop. audit_release/audit_security diagnose; add_component installs the fix from the matching starter — no re-scaffolding.

Surfaces: MCP tool add_component (7th tool) · CLI create-starter add-component [path] [--component g] [--starter id] [--apply] [--force] · /add-component slash command.

Component groups: ci / security (codeql + SECURITY.md) / dependabot (+auto-merge) / maintenance (stale + weekly health) / all. Never lifts cd*.yml (secrets → deploy-setup), setup.yml, update-changelog.yml, PR templates, or app code.

Safety: dry-run by default (per-file plan create/identical/skip-exists/overwrite); refuses a dirty tree unless force; differing files skipped unless force — so the dry-run plan doubles as a drift report against the starter (v1 of update_component).

Verified: 10 new tests (123/123 suite green, incl. the tools/list exhaustiveness gate); real e2e — auto-detected browser-extension on the actual starter repo, downloaded the live tarball, planned 7/7 identical. Reuses fetchTarball caps + extractStarterSignals.

The remediation half of the audit loop: audit_* diagnose gaps against the Starter Series bar; add_component installs the missing files from the matching starter. MCP tool + CLI subcommand + /add-component slash command.

- Component groups: ci / security (codeql + SECURITY.md) / dependabot (+auto-merge) / maintenance (stale + weekly health) / all. Deliberately never lifts cd*.yml (secrets — deploy-setup's job), setup.yml, update-changelog.yml, PR templates, or app code.
- Safety: dry-run by default (per-file plan: create / identical / skip-exists / overwrite); refuses a dirty git tree unless force; existing-but-different files skipped unless force — the dry-run plan doubles as a drift report against the starter (v1 answer to update_component).
- Reuses scaffold machinery: fetchTarball caps (50MB/30s/3 retries), safe extract, extractStarterSignals auto-detection (warns below high confidence).
- 10 new tests (123/123 green); verified e2e against the real browser-extension-starter: auto-detected, downloaded the live tarball, all 7 files identical.
@heznpc heznpc enabled auto-merge (squash) June 10, 2026 07:55
@heznpc heznpc merged commit 7cc4f92 into main Jun 10, 2026
6 checks passed
@heznpc heznpc deleted the feat/add-component branch June 10, 2026 07:56
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