From just-claude-things
Use when starting a new project after tech design is complete. Generates the repo scaffold (optionally populated from tech-design XML tags — Phase-2), root CLAUDE.md, per-module AGENTS.md with IDed architectural rules, matching semgrep rules, NetArchTest arch tests, and Claude-only git hooks. Triggers include "scaffold the repo", "set up the project", "wire in arch tests", "bootstrap new app".
How this skill is triggered — by the user, by Claude, or both
Slash command
/just-claude-things:scaffold-with-guardrailsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Convert a complete tech design into a living scaffold: code structure + governance
AGENTS-MD-TEMPLATE.mdCLAUDE-MD-TEMPLATE.mdCONVENTION-SCAN.mdFRONTMATTER-FORMAT.mdGRILL-LOOP.mdNEG-AUDIT.mdPREREQ-CHECK.mdSEMGREP-RULE-COOKBOOK.mdTECH-DESIGN-TAGS.mddetectors/api-conventions/envelope.yamldetectors/api-conventions/pagination.yamldetectors/api-conventions/problem-details.yamldetectors/api-conventions/swagger-customization.yamldetectors/auth/authorization-policies.yamldetectors/auth/cookie-auth.yamldetectors/auth/jwt-bearer.yamldetectors/auth/oidc.yamldetectors/build/directory-build-props.yamldetectors/build/directory-packages-props.yamldetectors/build/editorconfig.yamlConvert a complete tech design into a living scaffold: code structure + governance docs + machine-enforced architectural rules + Claude-only hooks.
docs/tech-design/<slug>.md with status: complete.
If missing or in-progress, stop and tell the user to run tech-design-grill.CLAUDE.md, AGENTS.md, .semgrep/.
See PREREQ-CHECK.md.CLAUDE.md (from CLAUDE-MD-TEMPLATE.md)AGENTS.md per module (from AGENTS-MD-TEMPLATE.md).semgrep/<app-lower>/<module-lower>.yaml per arch ruletests/<App>.Tests.Unit/Architecture/Directory.Build.targets — semgrep gate BeforeTargets="Build".claude/settings.json + .claude/hooks/{pre-commit,pre-push,stop-neg-audit}.shmigrations/0001_initial_schema.sql bootstrapSee TECH-DESIGN-TAGS.md for the tag schema.
PREREQ-CHECK.md. Refuse if no completed tech design.GRILL-LOOP.md):
dotnet new sln,
dotnet new classlib, etc. Follow templates/csharp/scaffold.md exactly.
Never reproduce what a generator creates.templates/csharp/scaffold.md
under "Files the skill hand-writes after dotnet new".src/<App>.<Module>/AGENTS.md from AGENTS-MD-TEMPLATE.md,
substituting placeholders from the Responsibility-matrix row.SEMGREP-RULE-COOKBOOK.md.
IDs: <APP_KEY>-<MODULE_KEY>-R001 upward..semgrep/ entry AND NetArchTest test.
Both are required. Either alone is insufficient.hooks/ to target .claude/hooks/. Write
.claude/settings.json. Make scripts executable.dotnet build — semgrep gate must pass on empty scaffold.dotnet test --filter "FullyQualifiedName~Architecture" — arch tests
pass on empty scaffold.NEG-AUDIT.md. Focus:
catch (Exception) { return default } patterns?AGENTS.md + at least one arch rule?status: complete in the tech design doc only after scaffold
validates AND neg-audit passes.After Phase-1 has produced <module> blocks and run validation, before Phase-2
code generation, run the convention scan to harvest house patterns from a
canonical reference repo:
bash skills/scaffold-with-guardrails/scripts/convention-scan.sh \
--reference-repo <PATH> \
--target-repo $PWD \
--design docs/tech-design/<slug>.md
The scan reads the detector registry under skills/scaffold-with-guardrails/detectors/
(plus any project overrides in .scaffold/detectors/), surfaces dev-reviewable cards,
and persists decisions in a <conventions> block appended to the tech-design doc
plus staged snippet files in .scaffold/staged/. Phase-2 reads both and grafts the
adopted snippets into generated code.
If no reference repo is supplied, Phase-1.5 is skipped — Phase-2 proceeds without convention grafting.
See CONVENTION-SCAN.md for full reference.
<module> tags in the tech-design doc.
If present, ask the user: "Populate Domain/Persistence/API skeletons
from the tagged sections? (Phase-2, opt-in)". On yes, follow
templates/csharp/scaffold-phase-2.md exactly. On no or no tags,
stop here. See the "Phase-1 → Phase-2 handoff" section of
templates/csharp/scaffold.md for detection rules..csproj, package.json, Cargo.toml, etc. when a
generator exists. That is Computational Friction.CLAUDE-MD-TEMPLATE.mdAGENTS-MD-TEMPLATE.mdSEMGREP-RULE-COOKBOOK.mdtemplates/csharp/scaffold.mdtemplates/csharp/scaffold-phase-2.mdTECH-DESIGN-TAGS.mdhooks/pre-commit.sh, hooks/pre-push.sh, hooks/stop-neg-audit.shGRILL-LOOP.md, PREREQ-CHECK.md, FRONTMATTER-FORMAT.md, NEG-AUDIT.mdbats-core is vendored as submodules under tests/ (_bats, _bats-support,
_bats-assert). Run all tests with:
bats skills/scaffold-with-guardrails/tests/
Helpers live in tests/bats-helpers/:
fixtures.bash — temp-repo setup (new_repo, install_gates_template, cleanup_repo).assertions.bash — gate-specific assertions (assert_gate_blocked, assert_verified_trailer).New gate tests go in tests/gates/*.bats.
npx claudepluginhub smalls257/just-claude-things --plugin just-claude-thingsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.