Skip to content
Back to skills

Code Scaffold Backport

ASecurity

Back-port an instance fix into the generator that produced it — cookiecutter, scaffold, `new-*` recipe. Use when fixing, reviewing, or auditing a generated file.

  • 58 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 3, 2026
ai-agentsbashgit

Security analysis

A100/100

Scanned September 3, 2026

npx -y skills add laurigates/claude-plugins --skill code-scaffold-backport --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Code Scaffold Backport?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Code Scaffold Backport
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/laurigates-code-scaffold-backport/badge)](https://www.skillsdirectory.com/skills/laurigates-code-scaffold-backport)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: code-scaffold-backport
description: Back-port an instance fix into the generator that produced it — cookiecutter, scaffold, `new-*` recipe. Use when fixing, reviewing, or auditing a generated file.
allowed-tools: Read, Grep, Glob, Edit, Bash, TodoWrite
created: 2026-08-19
modified: 2026-08-19
reviewed: 2026-08-19
---

# Back-Port Instance Fixes Into Their Scaffold/Generator

## When to Use This Skill

| Situation | Skill |
|-----------|-------|
| Fixing, reviewing, or auditing a file a generator emitted — cookiecutter/copier template, justfile `new-*` recipe, a `*-scaffold` skill, a "copy the example app" doc | **This skill** — patch the generator in the same sweep |
| Repeated code inside one codebase, with no generator behind it | `code-quality-plugin:dry-consolidation` |
| Auditing a whole fleet of generated instances against their template | The inverse direction — `.claude/rules/generated-fleet-drift.md`; an instance may legitimately be *ahead* of the template, so never auto-apply template → instance |

When fixing something that was *generated* — a site scaffolded by a
justfile recipe, a repo from a cookiecutter template, a config from a
`new-*` skill — check whether the bug came from the generator, and if
so, fix the generator **in the same sweep**. A fix applied only to the
deployed instance leaves every future generation broken in the same
way, and the gap is invisible until the next person scaffolds.

## The failure mode

Canonical case (FVH `sites` monorepo, 2026-06): two PRs fixed the
deployed `example-static` site — `service.targetPort: 8080` for the
non-root nginx image, numeric `runAsUser` for Kyverno — but the
`just new-site` template that had produced those broken values was
never touched. Every subsequently scaffolded site would have shipped
with chart-default port-80 probes against an 8080 listener: pod never
Ready, stuck `Progressing`, no error anywhere. Found and back-ported
only weeks later during a readiness audit (sites#11).

The shape is always the same:

1. An instance misbehaves; someone fixes the instance. PR merges, done.
2. The generator still emits the pre-fix content.
3. The next generation reproduces the bug — often for someone without
   the context of fix #1.

## The rule

- **When fixing a generated artifact**, ask: "did the generator produce
  this bug?" If yes, patch the generator template in the same PR (or an
  immediately linked one) — not as a someday follow-up.
- **When reviewing a fix to a known-scaffolded file** (e.g.
  `deploy/values.yaml` in a monorepo with a `new-*` recipe, anything
  under a directory a cookiecutter emits), check the template for the
  same defect before approving.
- **When auditing a scaffold for readiness**, diff the template's output
  against the oldest working instance — accumulated instance-only fixes
  show up as the delta.

## Where generators hide

- justfile `new-*` recipes with heredoc templates
- `cookiecutter/` directories and copier templates
- Claude skills that scaffold (`*-scaffold`, `configure-*`)
- "Copy the example app" docs — the example *is* the generator; fixes to
  forks of it don't propagate back

## Verify

After back-porting, generate a throwaway instance and diff it against
the fixed real instance — the relevant blocks should match:

```
just new-site zz-smoke-test
diff <(yq ... sites/zz-smoke-test/deploy/values.yaml) <(yq ... sites/example-static/deploy/values.yaml)
```

Clean up the throwaway (including any registry/config files the recipe
mutated) before committing.

## Rationale

This is DRY applied to provenance: the template is the source of truth
for new instances, so a fix that skips it creates a silently diverging
copy. The cost asymmetry is stark — back-porting at fix time is one
extra edit with full context in hand; discovering it later costs a
broken deploy, a re-diagnosis from scratch, and usually a different
person's afternoon.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…