skills/scafforge-audit/SKILL.md
Run Scafforge's host-side diagnosis flow for an existing repository. Use when a repo needs workflow diagnosis, contract verification, professional codebase review, or a four-report diagnosis pack with evidence-backed ticket recommendations and no repair edits.
npx skillsauth add chelch5/scafforge scafforge-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to inspect an existing repository in full diagnostic mode without mutating it.
This is the host-side diagnosis surface. It replaces the old mixed doctor-plus-bridge behavior by keeping diagnosis, review evidence intake, and report generation together in one non-mutating skill.
Every audit run produces the full four-report diagnosis pack.
Every diagnosis pack also persists disposition-bundle.json and package-evidence-bundle.json so package work can be staged into active-audits/ without inventing a second artifact family.
Use ../../references/competence-contract.md as the package-level bar for whether the workflow is actually competent.
This skill now emits code-quality findings as well as workflow findings, including EXEC families for stack-specific execution failures and REF families for broken canonical references.
scaffold-kickoff reaches the retrofit audit step or an explicit diagnosis/review flowIf the user explicitly asks to repair or refresh the managed workflow layer, route to ../scafforge-repair/SKILL.md instead.
Read the repo state first.
diagnosis/ and .opencode/meta/bootstrap-provenance.json to determine whether this is a repeat audit after a prior repair attempt.opencode/state/invocation-log.jsonl when it exists and treat coordinator-authored specialist artifacts there as suspect workflow evidencereferences/review-contract.mdDo not convert an unverified claim into a canonical finding. If this is a repeat audit, explain why the previous audit-to-repair cycle failed before recommending another repair run.
The script is evidence extraction, not the whole diagnosis. Its rule logic should stay grouped by invariant family in code modules, not keep growing only as prose in references. Its report generation and ticket-recommendation assembly should also stay in code modules rather than turning this skill doc into a second implementation surface. New smell codes should land with rule implementation plus regression coverage, not just another narrative note. For transcript-backed audits, the invoker must do all three steps in order:
When operating from the Scafforge package root, run:
python3 skills/scafforge-audit/scripts/audit_repo_process.py <repo-root> --format both --emit-diagnosis-pack
If your current working directory is the skill directory itself, the equivalent relative command is:
python3 scripts/audit_repo_process.py <repo-root> --format both --emit-diagnosis-pack
For standalone non-OpenCode usage, still prefer:
python3 skills/scafforge-audit/scripts/run_audit.py <repo-root> --format both
The canonical repo-root runner in Scafforge executes from the package root, so do not assume the skill directory is the shell cwd when copying commands from this document.
Pass --supporting-log <path> for each supplied session log or transcript export.
If the audited repo is outside the current host's writable roots, pass --diagnosis-output-dir <writable-path> so the diagnosis pack is still emitted in a host-writable location.
Use --diagnosis-kind initial_diagnosis for the first subject-repo diagnosis, --diagnosis-kind post_package_revalidation for the single fresh audit after Scafforge package changes land, and reserve post_repair_verification for the public repair runner.
It produces:
<repo-root>/diagnosis/<YYYYMMDD-HHMMSS>/ or another writable host-selected output directoryThe script diagnoses only. It does not modify files. Treat every script finding as a candidate until the invoker has reconciled it against the supplied logs and the current repo.
Read:
references/process-smells.mdreferences/repair-playbook.mdreferences/safe-stage-contracts.mdFor each finding, identify:
uv, pytest, rg, git identity, or diagnosis-pack output permissionssmoke_test can actually execute repo-standard explicit overrides, including shell-style KEY=VALUE cmd ... formssmoke_test honors ticket-specific acceptance commands before falling back to generic repo-level smoke detectionenvironment_bootstrap defect is not misclassified as operator-only rerun guidancetickets/manifest.json plus .opencode/state/workflow-state.json canonical over derived restart surfacesticket_lookup, ticket-execution, and stage gatessmoke_test, and team-leader guidance togetherhandoff_publish, restart surfaces, and lease rules togetherIf the request includes PR comments, review notes, or claimed bugs:
This skill owns professional review validation and ticket recommendation generation at the host layer. Do not route to a separate PR-bridge skill.
Produce the report pack described by the diagnosis docs on every run.
Use:
references/four-report-templates.md for report structurereferences/pr-review-workflow.md for review-triage procedurereferences/review-contract.md for evidence grades, ownership classification, and ticket-proposal rulesRequired outputs:
01-initial-codebase-review.md02-scafforge-process-failures.md03-scafforge-prevention-actions.md04-live-repo-repair-plan.mddisposition-bundle.jsonpackage-evidence-bundle.jsonAt minimum, the pack must capture:
bypass wordingReport 4 must:
scafforge-repair should runWhen Report 4 says package work must happen first, stop at the diagnosis pack and move into the package-side evidence chain.
python3 skills/scafforge-audit/scripts/stage_active_audit.py <diagnosis-dir-or-manifest> --agent-log <audit-log>
active-audits/<repo>/evidence-manifest.json as the machine-readable package investigation input. The current escalation matrix is intentionally conservative:
error managed-surface contradictions are always eligible package evidencewarning package-managed families escalate only when the same failure family is already present in at least one other distinct repo under active-audits/, or when the current diagnosis still says Scafforge package work is required firstEXEC* and REF* findings stay subject-repo follow-up unless the authoritative bundle marks them as package-managedactive-audits/<repo>/investigator/:python3 skills/scafforge-audit/scripts/write_investigator_report.py active-audits/<repo> --symptom-summary "..." --cause-hypothesis "..." --prevented-by "..." --surface <path> --revalidation-step "..."
active-audits/<repo>/fixer/:python3 skills/scafforge-audit/scripts/write_package_fix_record.py active-audits/<repo> --status open --package-pr <pr-ref> --package-issue <issue-ref> --validation "npm run validate:contract=passed" --validation "npm run validate:smoke=passed" --validation "python3 scripts/integration_test_scafforge.py=passed" --validation "python3 scripts/validate_gpttalker_migration.py=passed"
These investigator and fixer commands are bounded package-maintainer scripts, not public skills. They write evidence sidecars and review metadata under active-audits/; they do not mutate package code or generated repos directly, so separate skill-manifest registration is not required.
This skill is non-mutating.
package-change-pending outside the repo, while safe repo-local repair findings move it into repo-repair-pendingactive-audits/<repo>/ with stage_active_audit.py; keep the copied raw evidence immutablepost_package_revalidation audit against the updated package before recommending repair; stage that pack again so active-audits/<repo>/revalidation/resume-ready.json can carry the downstream resume truth../scafforge-repair/SKILL.md only from that fresh revalidation pack once package work is no longer the next required stepticket-pack-builderDo not modify the repo from this skill. Do not tell the user to go straight from report generation to repair unless you have first confirmed that the required Scafforge-side changes already exist.
scafforge-audit diagnoses, validates evidence, and recommends next actionsscafforge-repair consumes diagnosis outputs and applies safe managed-surface repairsKeep those responsibilities separate.
../handoff-brief/SKILL.md after a clean auditactive-audits/ when Report 4 identifies Scafforge package work../scafforge-repair/SKILL.md only after those package changes are implemented and the subject repo is back in scopesmoke_test into a generic failing-test finding when the tool ran the wrong smoke scopeENV002 rerun recommendation when the managed bootstrap surface is the reason the expected dependency flags never ranpending_process_verification by itself as a package defect when restart surfaces and routing already expose it truthfullyEXEC-GODOT-013, EXEC-GODOT-014, and EXEC-GODOT-015 explicit instead of collapsing them into generic driftticket_reconcile pathsplit_scope routing is missing or driftedreferences/process-smells.md — workflow smells covered by the auditreferences/repair-playbook.md — repair targets and safe-versus-intent boundaryreferences/safe-stage-contracts.md — stage contract definitionsreferences/review-contract.md — evidence validation and non-taint rules for review findingsreferences/pr-review-workflow.md — review-comment intake, validation, and routing workflowreferences/four-report-templates.md — required structure for the diagnosis-pack reportstesting
Use when validating Android feature flows in an emulator with adb-driven launch, input, UI-tree inspection, screenshots, and logcat capture.
development
Best practices for Remotion - Video creation in React
development
Set browser-game architecture before implementation. Use when the user needs engine choice, simulation and render boundaries, input model, asset organization, or save/debug/performance strategy.
development
Prepare and optimize browser-game 3D assets. Use when the user asks for GLB or glTF shipping work, including Blender cleanup and export, collision or LOD setup, compression, texture packaging, and runtime validation.