Loading...
Loading...
Use when scaffolding a new repository (public or private) to the Patina Project baseline, when realigning an existing repository with that baseline, or when auditing or adding commit conventions, PR templates, husky + commitlint, PNPM tooling, release-please, agent docs (AGENTS.md, CLAUDE.md), or AI agent plugin manifests for Claude Code, Codex, Cursor, Windsurf, and Copilot. Triggers on phrases like "scaffold this repo", "scaffold a Patina plugin", "realign with the baseline", "audit our repo conventions", "set up commitlint and husky", or "add Codex/Cursor/Windsurf surfaces".
npx skill4agent add patinaproject/skills scaffold-repositoryscaffold-repositorypatinaproject/superteamskills/AGENTS.mdCLAUDE.mdREADME.mddocs/file-structure.md.claude-plugin/.codex-plugin/docs/superpowers/specs/.gitkeepdocs/superpowers/plans/.gitkeeppnpm skills:installskills:installpatinaproject/skillsobra/superpowersnpx skillspnpm installpnpm-lock.yamlaudit-checklist.mdmissingstaledivergentAGENTS.mdpatinaproject/bootstrap.claude-plugin/.codex-plugin/release-please-config.json.release-please-manifest.jsoncommitlint.config.js.husky/*.github/pull_request_template.md.github/ISSUE_TEMPLATE/*package.json.markdownlint.jsoncscripts/check-plugin-versions.mjsscripts/sync-plugin-versions.mjsAGENTS.mdCLAUDE.mdCONTRIBUTING.mdREADME.mdRELEASING.md.cursor/.windsurfrules.github/copilot-instructions.md.github/workflows/*release.ymlpermissions:<use-superteam>docs/superpowers/specs/docs/superpowers/plans/git config user.namegit config user.emailgh api user --jq .loginAuthor GitHub handle (for author URL)?| Prompt | Default | Notes |
|---|---|---|
| from | GitHub org or user |
| from | repository name |
| – | one-line description |
| public | public | private |
| no | yes emits plugin/config surfaces for every supported AI coding tool |
| no | yes emits |
| – | required when |
| | written into |
| from | public repos only; written into |
| from | written into every |
| from | written into every |
| from | prompted if unavailable; written into |
| Continue.dev | no | opt-in secondary editor surface during agent-plugin mode |
.claude/settings.json
.editorconfig
.github/CODEOWNERS
.github/ISSUE_TEMPLATE/bug_report.md
.github/ISSUE_TEMPLATE/feature_request.md
.github/actionlint.yaml
.github/pull_request_template.md
.github/workflows/actions.yml
.github/workflows/markdown.yml
.github/workflows/pull-request.yml
.gitattributes
.gitignore
.husky/commit-msg
.husky/pre-commit
.markdownlint.jsonc
.markdownlintignore
.nvmrc
AGENTS.md
CHANGELOG.md
CLAUDE.md
CONTRIBUTING.md
README.md (core variant; replaced by agent-plugin variant when <is-agent-plugin>=yes)
RELEASING.md
SECURITY.md (public repos only)
commitlint.config.js
docs/file-structure.md
package.json
scripts/check-plugin-versions.mjs
scripts/sync-plugin-versions.mjs<is-agent-plugin>.claude-plugin/plugin.json (Claude Code)
.codex-plugin/plugin.json (Codex)
.github/copilot-instructions.md (GitHub Copilot)
.github/workflows/release.yml (release-please)
.cursor/rules/{{repo}}.mdc (Cursor)
.windsurfrules (Windsurf)
README.md (replaces core README with installation instructions)
release-please-config.json
.release-please-manifest.json
skills/{{primary-skill-name}}/SKILL.md
skills/.gitkeepREADME.md.tmplREADME.md.tmpl<primary-skill-name>AGENTS.mdAGENTS.md.codex-plugin/plugin.json.continue/config.jsonpatinaproject.github/workflows/release.ymlskills/scaffold-repository/templates/patinaproject-supplement/.github/workflows/release.ymlrelease-pleasenotify-patinaproject-skillsplugin-release-bump.ymlpatinaproject/skillspatinaproject/skillsgit remote get-url origin<owner>if: github.repository_owner == 'patinaproject'.claude/settings.json{
"enabledPlugins": {
"superteam@patinaproject-skills": true,
"superpowers@claude-plugins-official": true
}
}enabledPluginspnpm skills:installnpm_config_ignore_scripts=true npx skills@1.5.6 add patinaproject/skills -ynpm_config_ignore_scripts=true npx skills@1.5.6 add obra/superpowers -y#<issue>commit-msgRelated toBlocksPartially satisfiesTest coverageTesting stepsRisksmarkdownlint-cli2.markdownlint.jsonc.markdownlintignorelint-stagedpre-commitnode_modules/"packageManager": "pnpm@10.33.2"engines.node >=24prepare: "husky"lint:mdskills:install.gitattributes* text=auto eol=lf.github/workflows/pull-request.yml#<issue>!BREAKING CHANGE:.github/workflows/markdown.ymlDavidAnson/markdownlint-cli2-actionpre-commit--no-verify.github/workflows/actions.ymlactionlint.github/workflows/**.github/actionlint.yamluses:# <action>@<version>AGENTS.mdAGENTS.mdgh label listpackage.json.claude-plugin/plugin.json.codex-plugin/plugin.jsongit confighttps://github.com/<author-handle>gh api user --jq .loginhomepagerepository<owner>/<repo>release-pleasepackage.jsonCHANGELOG.mdpatinaproject/skillspatinaproject/skillsgit subtreepatinaproject/skillsnotify-patinaproject-skillsrelease-pleasepackage.jsonscripts/sync-plugin-versions.mjs.claude-plugin/plugin.json.codex-plugin/plugin.jsonscripts/check-plugin-versions.mjspre-commit| Setting | Value | Reason |
|---|---|---|
| true | Release flow assumes squash; lint-pr enforces a PR title ready to become the squash commit. |
| false | Merge commits break linear history and release-please commit parsing. |
| false | Rebase-merge drops the PR-title context that release-please reads. |
| | Carries the lint-pr-validated title straight through to |
| | Preserves commit-level context (useful for review and git blame) in the squash body. |
| true | Keeps the branch list tidy after each squash. |
| true | Surfaces an "Update branch" button on stale PRs so reviewers can sync without leaving the UI. |
| Release immutability | enabled | Prevents published release assets and tags from being modified after the fact – critical for marketplace consumers pinning to a tag. UI-only: not exposed via the standard REST |
ghgh api "repos/<owner>/<repo>" --jq '{allow_squash_merge, allow_merge_commit, allow_rebase_merge, squash_merge_commit_title, squash_merge_commit_message, delete_branch_on_merge, allow_update_branch}'curljqjqcurl -s "https://api.github.com/repos/<owner>/<repo>" \
| jq '{allow_squash_merge, allow_merge_commit, allow_rebase_merge, squash_merge_commit_title, squash_merge_commit_message, delete_branch_on_merge, allow_update_branch}'ghcurlhttps://github.com/<owner>/<repo>/settings#pull-requests-headingallow_merge_commitfalsesquash_merge_commit_title=PR_TITLEsquash_merge_commit_message=COMMIT_MESSAGESallow_update_branch=truedelete_branch_on_merge=truereposghgh api -X PATCH "repos/<owner>/<repo>" \
-F allow_squash_merge=true \
-F allow_merge_commit=false \
-F allow_rebase_merge=false \
-F squash_merge_commit_title=PR_TITLE \
-F squash_merge_commit_message=COMMIT_MESSAGES \
-F delete_branch_on_merge=true \
-F allow_update_branch=trueRepository settings drift detected. Open:
https://github.com/<owner>/<repo>/settings#pull-requests-heading
1. Allow merge commits: currently ON, should be OFF.
2. Allow rebase merging: currently ON, should be OFF.
3. Default squash commit message: currently "Default to pull request title",
should be "Pull request title and commit details".
4. Automatically delete head branches: currently OFF, should be ON.
(Auto-merge is intentionally left unopinionated – neither recommended nor
flagged.)
Proceed to apply via `gh api` (if available), or confirm after applying via UI?ghcurlskippedautorelease: pendingautorelease: taggedautorelease: pendingedededgh label editpnpm install
pnpm exec commitlint --help
pnpm lint:md
echo "feat: bad" | pnpm exec commitlint # exits non-zero
echo "feat: #1 ok" | pnpm exec commitlint # exits zeropnpm exec markdownlint-cli2 --fix "**/*.md" "#node_modules"patinaproject/bootstraptemplates/skills/scaffold-repository/audit-checklist.mdtemplates/../../AGENTS.md../../docs/file-structure.md