opencode-skills-collection 4.1.2 → 4.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of opencode-skills-collection might be problematic. Click here for more details.

Files changed (99) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +31 -1
  2. package/bundled-skills/ai-agent-evaluation-benchmarking/SKILL.md +124 -0
  3. package/bundled-skills/ai-agent-tool-routing/SKILL.md +136 -0
  4. package/bundled-skills/ai-code-generation-guardrails/SKILL.md +142 -0
  5. package/bundled-skills/ai-prompt-regression-testing/SKILL.md +130 -0
  6. package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +26 -8
  7. package/bundled-skills/cline-pilot/README.md +138 -0
  8. package/bundled-skills/cline-pilot/SKILL.md +301 -0
  9. package/bundled-skills/cline-pilot/assets/global-memory-bank-prompt.en.md +66 -0
  10. package/bundled-skills/cline-pilot/assets/global-memory-bank-prompt.md +56 -0
  11. package/bundled-skills/cline-pilot/references/cold-start.md +58 -0
  12. package/bundled-skills/cline-pilot/references/decision-log.example.md +9 -0
  13. package/bundled-skills/cline-pilot/references/local-config.example.md +26 -0
  14. package/bundled-skills/cline-pilot/references/project-profiles.example.md +10 -0
  15. package/bundled-skills/cline-pilot/scripts/session_report.py +151 -0
  16. package/bundled-skills/cross-chain-relayer-audit/SKILL.md +136 -0
  17. package/bundled-skills/deep-research-framework/SKILL.md +81 -0
  18. package/bundled-skills/defi-yield-strategy-allocator/SKILL.md +124 -0
  19. package/bundled-skills/dropthehassle-publish/SKILL.md +151 -0
  20. package/bundled-skills/five-axis-code-review/SKILL.md +78 -0
  21. package/bundled-skills/git-commit-message/SKILL.md +76 -0
  22. package/bundled-skills/idea-to-blueprint/LICENSE +21 -0
  23. package/bundled-skills/idea-to-blueprint/SKILL.md +260 -0
  24. package/bundled-skills/idea-to-blueprint/assets/AGENTS.md.template +38 -0
  25. package/bundled-skills/idea-to-blueprint/assets/CLAUDE.md.template +38 -0
  26. package/bundled-skills/idea-to-blueprint/assets/DECISIONS.md.template +14 -0
  27. package/bundled-skills/idea-to-blueprint/assets/PROGRESS.md.template +47 -0
  28. package/bundled-skills/idea-to-blueprint/assets/session-prompt.md +23 -0
  29. package/bundled-skills/idea-to-blueprint/references/architecture-decisions.md +202 -0
  30. package/bundled-skills/idea-to-blueprint/references/blueprint-template.md +259 -0
  31. package/bundled-skills/idea-to-blueprint/references/code-quality-and-review.md +216 -0
  32. package/bundled-skills/idea-to-blueprint/references/design-minimal.md +96 -0
  33. package/bundled-skills/idea-to-blueprint/references/edge-case-catalog.md +239 -0
  34. package/bundled-skills/idea-to-blueprint/references/intake-questions.md +105 -0
  35. package/bundled-skills/idea-to-blueprint/references/research-protocol.md +196 -0
  36. package/bundled-skills/idea-to-blueprint/references/session-protocol.md +133 -0
  37. package/bundled-skills/idea-to-blueprint/references/stories-ac-tests.md +194 -0
  38. package/bundled-skills/idea-to-blueprint/references/ux-writing-guide.md +128 -0
  39. package/bundled-skills/idea-to-blueprint/scripts/lint_blueprint.py +460 -0
  40. package/bundled-skills/liuguang-banlan-ui/SKILL.md +22 -18
  41. package/bundled-skills/liuguang-banlan-ui/assets/starter/launcher.css +2 -2
  42. package/bundled-skills/liuguang-banlan-ui/assets/starter/obsidian/index.html +5 -4
  43. package/bundled-skills/liuguang-banlan-ui/assets/starter/obsidian/theme-config.js +3 -10
  44. package/bundled-skills/liuguang-banlan-ui/assets/starter/obsidian/theme.css +48 -62
  45. package/bundled-skills/liuguang-banlan-ui/assets/starter/opal/index.html +5 -4
  46. package/bundled-skills/liuguang-banlan-ui/assets/starter/opal/theme-config.js +27 -35
  47. package/bundled-skills/liuguang-banlan-ui/assets/starter/opal/theme.css +48 -62
  48. package/bundled-skills/liuguang-banlan-ui/assets/starter/shared/spectral-field.js +135 -148
  49. package/bundled-skills/liuguang-banlan-ui/references/style-contract.md +26 -7
  50. package/bundled-skills/liuguang-banlan-ui/references/verification.md +19 -7
  51. package/bundled-skills/liuguang-banlan-ui/scripts/measure_preview.py +78 -47
  52. package/bundled-skills/liuguang-banlan-ui/scripts/serve_preview.py +35 -0
  53. package/bundled-skills/liuguang-banlan-ui/scripts/validate_manifest.py +34 -3
  54. package/bundled-skills/liuguang-banlan-ui/tests/test_measure_preview.py +119 -0
  55. package/bundled-skills/liuguang-banlan-ui/tests/test_serve_preview.py +38 -0
  56. package/bundled-skills/liuguang-banlan-ui/tests/test_validate_manifest.py +73 -0
  57. package/bundled-skills/loki-mode/examples/todo-app-generated/frontend/package-lock.json +12 -12
  58. package/bundled-skills/loki-mode/examples/todo-app-generated/frontend/package.json +1 -1
  59. package/bundled-skills/meeting-notes/SKILL.md +80 -0
  60. package/bundled-skills/repo-foundation/SKILL.md +166 -0
  61. package/bundled-skills/repo-foundation/references/LICENSE.md +21 -0
  62. package/bundled-skills/repo-foundation/references/bootstrap.md +63 -0
  63. package/bundled-skills/repo-foundation/references/companion.md +9 -0
  64. package/bundled-skills/repo-foundation/references/continuity.md +50 -0
  65. package/bundled-skills/repo-foundation/references/evolution.md +60 -0
  66. package/bundled-skills/repo-foundation/references/migration-examples.md +53 -0
  67. package/bundled-skills/repo-foundation/references/shared-contracts.md +48 -0
  68. package/bundled-skills/repo-foundation/references/verification.md +50 -0
  69. package/bundled-skills/repo-native-refactor/SKILL.md +225 -0
  70. package/bundled-skills/repo-native-refactor/references/LICENSE.md +21 -0
  71. package/bundled-skills/repo-native-refactor/references/deterministic-tooling.md +101 -0
  72. package/bundled-skills/repo-native-refactor/references/error-reliability.md +117 -0
  73. package/bundled-skills/repo-native-refactor/references/finding-taxonomy.md +181 -0
  74. package/bundled-skills/repo-native-refactor/references/refactor-examples.md +77 -0
  75. package/bundled-skills/repo-native-refactor/references/repository-prose.md +157 -0
  76. package/bundled-skills/repo-native-refactor/references/repository-rehabilitation.md +94 -0
  77. package/bundled-skills/repo-native-refactor/references/semantic-risk.md +187 -0
  78. package/bundled-skills/repo-native-refactor/references/shared-contracts.md +48 -0
  79. package/bundled-skills/repo-native-refactor/references/testing-integrity.md +103 -0
  80. package/bundled-skills/smart-contract-formal-verification/SKILL.md +136 -0
  81. package/bundled-skills/smart-contract-upgrade-governance/SKILL.md +130 -0
  82. package/bundled-skills/soroban-contract-audit/SKILL.md +136 -0
  83. package/bundled-skills/soroban-liquidity-pool/SKILL.md +118 -0
  84. package/bundled-skills/soroban-oracle-data-feed-audit/SKILL.md +118 -0
  85. package/bundled-skills/soroban-storage-ttl-lifecycle/SKILL.md +118 -0
  86. package/bundled-skills/soroban-token-minter/SKILL.md +124 -0
  87. package/bundled-skills/stellar-anchor-integration/SKILL.md +136 -0
  88. package/bundled-skills/stellar-asset-clawback-compliance/SKILL.md +118 -0
  89. package/bundled-skills/stellar-escrow-timelock/SKILL.md +118 -0
  90. package/bundled-skills/stellar-multisig-threshold-coordinator/SKILL.md +112 -0
  91. package/bundled-skills/tech-writing-proofread/SKILL.md +78 -0
  92. package/bundled-skills/typescript-expert/scripts/ts_diagnostic.py +40 -19
  93. package/bundled-skills/waf-setup/SKILL.md +1 -1
  94. package/bundled-skills/web3-rate-limiting-circuit-breaker/SKILL.md +130 -0
  95. package/bundled-skills/web3-transaction-relayer-pool/SKILL.md +124 -0
  96. package/bundled-skills/youtube-summarizer/SKILL.md +3 -3
  97. package/bundled-skills/zk-proof-verification-pipeline/SKILL.md +124 -0
  98. package/package.json +1 -1
  99. package/skills_index.json +1059 -0
@@ -0,0 +1,151 @@
1
+ ---
2
+ name: dropthehassle-publish
3
+ description: "Publish a finished static site to a free HTTPS link with DropTheHassle: build it if needed, deploy, hand over the claim link, verify it is live, never spend money."
4
+ category: devops
5
+ risk: critical
6
+ source: "https://github.com/bosmdavid-gif/dropthehassle-skill"
7
+ source_repo: "bosmdavid-gif/dropthehassle-skill"
8
+ source_type: official
9
+ date_added: "2026-10-01"
10
+ license: "MIT"
11
+ license_source: "https://github.com/bosmdavid-gif/dropthehassle-skill/blob/main/LICENSE"
12
+ author: bosmdavid-gif
13
+ tags: [deploy, static-site, hosting, domain, mcp]
14
+ tools: [claude, cursor, codex, windsurf]
15
+ ---
16
+
17
+ # DropTheHassle publish
18
+
19
+ ## Overview
20
+
21
+ DropTheHassle (https://dropthehassle.com) hosts finished static files (HTML, CSS, JS, images) on a
22
+ free `name.dropthehassle.app` link with HTTPS, and can later put the same site on a real domain
23
+ with no DNS editing. A first deploy needs no account: it returns a live URL and a claim link. This
24
+ skill makes the agent check that the folder is a finished build, deploy it with the CLI or MCP
25
+ server, give the human the claim link, and verify the site is live. No DropTheHassle tool can pay,
26
+ and the agent must never try to. Adapted from the official skill, which also ships a local
27
+ preflight script and longer references: https://github.com/bosmdavid-gif/dropthehassle-skill
28
+
29
+ ## When to Use This Skill
30
+
31
+ - Use when the user asks to publish, deploy, host or share a site they built with an AI tool and
32
+ wants DropTheHassle, or wants it on a free link or their own domain without DNS work and has not
33
+ picked another host.
34
+ - Use when the folder is static output: a hand-written `index.html`, or a Vite, Astro, Create React
35
+ App, Nuxt generate, Next.js `output: 'export'` or TanStack Start SPA build.
36
+ - Do not use for apps that need a server at runtime (SSR, API routes, server functions, PHP). Say
37
+ that DropTheHassle only hosts static files.
38
+
39
+ ## How It Works
40
+
41
+ ### Step 1: Find the finished folder
42
+
43
+ - Plain folder with `index.html` at the top: that is the site.
44
+ - Project with a `build` script or a `vite.config.*`, `next.config.*`, `astro.config.*` or
45
+ `nuxt.config.*`: look for `index.html` in `dist/`, `build/`, `out/` or `.output/public/`. If
46
+ there is none, install with the lockfile's package manager and run the build first. Next.js
47
+ needs `output: 'export'` (writes `out/`).
48
+ - An `index.html` that loads `/src/main.tsx` or another `.ts`, `.tsx`, `.jsx` or `/src/` script
49
+ is a dev entry. Build it.
50
+ - The DropTheHassle CLI and MCP server never run the build. On unbuilt source they stop and print
51
+ the build command.
52
+
53
+ ### Step 2: Check the limits
54
+
55
+ Before the site is claimed: 25 MB and 1,000 files, and no executables or archives
56
+ (`.exe .msi .apk .dmg .scr .bat .zip .rar .7z .iso`). Signed in: 100 MB and 5,000 files. One
57
+ network can create 5 new unclaimed sites per hour and 20 per day. `node_modules`, `.git` and
58
+ hidden files are left out, except `.well-known`.
59
+
60
+ ### Step 3: Deploy
61
+
62
+ CLI, run on the project folder after the build (or on the plain site folder):
63
+
64
+ ```bash
65
+ npx -y dropthehassle deploy .
66
+ ```
67
+
68
+ It prints the live URL and a claim link, and writes `.dropthehassle.json` in that folder so the
69
+ next deploy from it updates the same site. That file holds the site's key: keep it out of git.
70
+ `--login` puts the site on the human's account after a browser approval; `--slug name` only works
71
+ with `--login`; `--code XXXX-XXXX` uses a 15-minute dashboard code for an existing site.
72
+
73
+ MCP, in Claude Code:
74
+
75
+ ```bash
76
+ claude mcp add dropthehassle -- npx -y dropthehassle-mcp
77
+ ```
78
+
79
+ Then call `deploy_site` with `folder` set to the absolute path. The hosted connector
80
+ `https://dropthehassle.com/mcp` cannot read the disk: send `files` inline as
81
+ `{path, content, encoding}` (`utf8` or `base64`). Account tools need the human's token from
82
+ dropthehassle.com, menu, Connect your AI, set as `DTH_TOKEN` by the human in their own config.
83
+
84
+ ### Step 4: Hand over and verify
85
+
86
+ Tell the human the live URL and the claim link, and that the claim link works for 7 days. An
87
+ unclaimed site can be removed after that. Then check:
88
+
89
+ ```bash
90
+ curl -s "https://dropthehassle.com/api/v1/check?host=NAME.dropthehassle.app"
91
+ ```
92
+
93
+ `outcome` should be `live` and `secure` true. The same check is on
94
+ https://dropthehassle.com/is-my-website-down.
95
+
96
+ ### Step 5: Domains, only if asked
97
+
98
+ Check names with the MCP `search_domain` tool or
99
+ `curl -s "https://dropthehassle.com/api/v1/domains/search?q=NAME.com"`, and report only names the
100
+ answer marks `available`, with the price it returned. Buying is the human's step: after they claim
101
+ the site, `get_checkout_link` returns a `checkout.stripe.com` link for them to open and pay.
102
+
103
+ ## Examples
104
+
105
+ ### Example 1: Vite project
106
+
107
+ ```text
108
+ User: Put this site online.
109
+ Agent: No dist/ yet, so runs npm install && npm run build, then npx -y dropthehassle deploy .
110
+ Reports: Live at https://yourname.dropthehassle.app, plus the claim link (7 days).
111
+ Runs the live check: outcome "live", secure true.
112
+ ```
113
+
114
+ ### Example 2: Domain search
115
+
116
+ ```text
117
+ User: Is there a .com for it?
118
+ Agent: Checks three names with search_domain, lists the available ones with the returned price,
119
+ and asks which one they want. It does not create a payment link until they say so.
120
+ ```
121
+
122
+ ## Best Practices
123
+
124
+ - ✅ Deploy the build output, not the source, and rebuild before every redeploy.
125
+ - ✅ Run the CLI on the project folder so a rebuild of `dist/` does not delete the link file.
126
+ - ✅ Give the human the claim link word for word, with the 7-day note.
127
+ - ❌ Do not open, fill in or pay a payment link. A DropTheHassle payment link is always on
128
+ `checkout.stripe.com`.
129
+ - ❌ Do not invent or commit a token, and do not loop new anonymous deploys.
130
+ - ❌ Do not rename the free link (`choose_link`) without an explicit yes for that exact name.
131
+
132
+ ## Limitations
133
+
134
+ - Static files only. Server code does not run; a separate HTTPS backend can be linked with the
135
+ `set_backend` tool (account token).
136
+ - `npx dropthehassle status` and `rollback` need a folder linked with `--login` or `--code`.
137
+ - On npm `dropthehassle-mcp` 0.4.2, `search_domain` needs a token; the hosted connector and the
138
+ HTTP route above work without one.
139
+ - Cloud sandboxes (Claude Code on the web, Codex cloud) block dropthehassle.com by default: allow
140
+ the domain or use the hosted connector.
141
+ - A plain deploy from a fresh machine creates a new site. Updating a claimed site needs a
142
+ dashboard code or the token.
143
+
144
+ ## Security & Safety Notes
145
+
146
+ - Deploying publishes the folder on a public URL. Confirm the folder holds only what the user wants
147
+ public. Hidden files such as `.env` are left out, but secrets in JS bundles are not.
148
+ - `.dropthehassle.json` contains a site key. Never commit or publish it.
149
+ - The account token can deploy and create payment links but cannot pay. The human sets it in their
150
+ own MCP config; the agent should not ask for it in chat.
151
+ - Never buy anything or create a payment link without the user asking.
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: five-axis-code-review
3
+ description: "Five-axis code review checklist (correctness, security, readability, performance, test coverage) producing actionable comments instead of style nitpicks. Use when the user asks to review code, a diff, or a pull request."
4
+ category: development
5
+ risk: safe
6
+ source: https://github.com/alapha888/agent-skills-en
7
+ source_repo: alapha888/agent-skills-en
8
+ source_type: community
9
+ date_added: "2026-10-01"
10
+ author: alapha888
11
+ tags: [code-review, code-quality, pull-requests]
12
+ tools: [claude, cursor, gemini, codex]
13
+ license: MIT
14
+ license_source: https://github.com/alapha888/agent-skills-en/blob/main/LICENSE
15
+ ---
16
+
17
+ # Code Review Checklist
18
+
19
+ One review answers a single question: "Will this code become someone else's problem within three months?" Walk the five axes in order; each axis gets pass / fail / N-A, and every failure must come with a concrete fix.
20
+
21
+ ## When to Use
22
+
23
+ - Use when the user asks to review code, a diff, or a pull request.
24
+ - Use when a review should stay actionable and skip style nitpicks.
25
+
26
+ ## Workflow
27
+
28
+ 1. **Check the scope first**: look at the diff size. Over ~400 changed lines, ask for a split before reviewing — review quality on huge diffs always collapses.
29
+ 2. **Check axis by axis** (order = priority):
30
+ - **Correctness**: edge cases (null, empty, zero, negative, oversized), concurrency/timing assumptions, error handling (are exceptions swallowed?). The only axis that can block a merge.
31
+ - **Security**: is user input concatenated into SQL / shell commands / HTML; are secrets or tokens hard-coded; does logging leak sensitive data.
32
+ - **Readability**: do names say what things are; does each function do one thing; are magic numbers named. Flag only what you can't understand — not "I'd write it differently."
33
+ - **Performance**: repeated queries or recomputation inside loops; N+1 problems; avoidable large-object copies. No data-free performance speculation ("this might get slow" is not a comment).
34
+ - **Test coverage**: does new logic have tests; do edge cases have cases. All-green tests with the critical path uncovered still get sent back.
35
+ 3. **Write the comments**: fixed format — `[axis] file:line problem → suggested fix`. Only actionable suggestions; "could be optimized" is not one.
36
+ 4. **Triage**: `Must fix` (correctness / security) vs `Should fix` (readability / performance / tests). "Should fix" doesn't block the merge, but say so explicitly.
37
+
38
+ ## Rules
39
+
40
+ - At most 10 comments per review. More than that means the code is too broken — send it back for a rewrite instead of grading 50 items.
41
+ - No style policing: indentation, quotes, semicolons — that's the linter's job, not a human's.
42
+ - Speak with the diff: every comment must cite a concrete line of code. A comment without a code reference is invalid.
43
+
44
+ ## Checklist (minimal executable version)
45
+
46
+ ```markdown
47
+ ## Code review checklist
48
+
49
+ - [ ] Correctness: edge cases (null/0/negative/oversized) handled, exceptions not swallowed
50
+ - [ ] Correctness: concurrency/timing assumptions hold, no races
51
+ - [ ] Security: no SQL/shell/HTML injection points, no hard-coded secrets, no sensitive data in logs
52
+ - [ ] Readability: names are descriptive, functions have a single responsibility, no magic numbers
53
+ - [ ] Performance: no repeated queries/computation in loops, no N+1, no evidence-free performance worries
54
+ - [ ] Tests: new logic is covered, edge cases have cases
55
+ - [ ] Scope: diff ≤ ~400 lines, otherwise split first
56
+ ```
57
+
58
+ Example review comments:
59
+
60
+ ```text
61
+ [Must fix][Correctness] order.py:87 empty order list triggers IndexError → guard for empty before taking [0]
62
+ [Should fix][Readability] order.py:92 magic number 86400 → name it SECONDS_PER_DAY
63
+ ```
64
+
65
+ ## Limitations
66
+
67
+ - Covers five review axes, not every quality dimension. Domain-specific correctness (financial rounding, protocol conformance, accessibility conformance) still needs its own specialist review.
68
+ - The five axes are heuristics for a human reviewer. A clean pass on the checklist does not prove the change is correct, secure, or performant.
69
+ - Security review here is a reading checklist, not a scanner. Static analysis, dependency audit and secret scanning run as separate tools.
70
+ - The skill reviews diffs; it cannot establish that requirements were met, and an empty findings list only means no finding was evidenced in the reviewed scope.
71
+
72
+ ## Anti-patterns
73
+
74
+ - ❌ Drive-by LGTM: approving before reading the whole diff — the review is theater.
75
+ - ❌ Style police: 18 of 20 comments about quotes and line breaks while a null-pointer dereference slips through.
76
+ - ❌ Comments without code: "this logic looks off" — which logic? Which line? Unsaid means invalid.
77
+ - ❌ Performance speculation: "this loop might be slow at scale" — a performance comment without data is noise.
78
+ - ❌ Grading 50 items: when there are too many problems to list, the right move is "rewrite and resubmit", not playing teacher.
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: git-commit-message
3
+ description: "Generates conventional-commit messages from staged changes: type prefix + English imperative subject (≤50 chars) + optional body explaining why. Use when the user asks to write, generate, or polish a git commit message."
4
+ category: development
5
+ risk: safe
6
+ source: https://github.com/alapha888/agent-skills-en
7
+ source_repo: alapha888/agent-skills-en
8
+ source_type: community
9
+ date_added: "2026-10-01"
10
+ author: alapha888
11
+ tags: [git, commit-messages, conventional-commits]
12
+ tools: [claude, cursor, gemini, codex]
13
+ license: MIT
14
+ license_source: https://github.com/alapha888/agent-skills-en/blob/main/LICENSE
15
+ ---
16
+
17
+ # Git Commit Message Generation
18
+
19
+ Generate a commit message from the actual staged changes (`git diff --cached`). The message must let a reader know "what changed and why" without opening the diff.
20
+
21
+ ## When to Use
22
+
23
+ - Use when the user asks to write, generate, or polish a git commit message.
24
+ - Use when staged changes need a conventional-commit message with a why-focused body.
25
+
26
+ ## Workflow
27
+
28
+ 1. **Look at the changes**: run `git status --short` and `git diff --cached --stat` to confirm there is something staged. If the staging area is empty, stop and ask the user — never invent a commit message out of nothing.
29
+ 2. **Pick a type**: choose exactly one type prefix based on the changes (if one commit mixes types, ask the user to split it):
30
+ - `feat`: new feature
31
+ - `fix`: bug fix
32
+ - `docs`: documentation only
33
+ - `refactor`: refactor (behavior unchanged)
34
+ - `test`: add or change tests
35
+ - `chore`: build, dependencies, misc
36
+ 3. **Write the subject**: format `type: English imperative phrase`, ≤50 characters. Start with a verb: "Add…", "Fix…", "Remove…", "Unify…". Ban empty subjects like "update code", "some changes", "fix bug".
37
+ 4. **Write the body (optional but recommended)**: 1–3 lines explaining *why*, not a play-by-play of *how*. Bug fixes must state the trigger conditions; features should describe the user-visible change.
38
+ 5. **Output**: give a ready-to-run command, not bare text the user has to assemble.
39
+
40
+ ## Rules
41
+
42
+ - The subject is for skimmers; the body is for future-you in three months. Keep the two jobs separate.
43
+ - A change mixing a feature and a refactor should become two commits, not one `feat` that papers over the mess.
44
+ - No meta-commentary in the message ("generated by AI", etc.) — the message is about the change, nothing else.
45
+
46
+ ## Minimal example (runnable)
47
+
48
+ ```bash
49
+ # 1. Look at the changes first
50
+ git status --short
51
+ git diff --cached --stat
52
+
53
+ # 2. Suppose the change: added CAPTCHA verification to the login endpoint
54
+ # Generated commit:
55
+ git commit -m "feat: add CAPTCHA verification to login endpoint" -m "Blocks automated credential stuffing; CAPTCHA valid 5 minutes, account locks 10 minutes after 3 failures."
56
+ ```
57
+
58
+ Another example (bug fixes must state trigger conditions):
59
+
60
+ ```bash
61
+ git commit -m "fix: keep order-list filters across pagination" -m "Trigger: filter first, then turn the page. Cause: page turns dropped the query params."
62
+ ```
63
+
64
+ ## Limitations
65
+
66
+ - Only writes the message. Staging, splitting, committing and pushing remain the user's decision, and the skill never runs `git commit` on its own.
67
+ - The 50-character subject and imperative-mood conventions are the common default; repositories with their own commit convention (Gitmoji, Jira prefixes, project overrides) take precedence over this skill.
68
+ - It reads the staged diff, so it cannot describe intent that the diff alone does not show. When the "why" is not inferable, the skill asks instead of inventing it.
69
+ - Generated or vendored changes (lockfiles, minified output) are summarized collectively rather than listed line by line.
70
+
71
+ ## Anti-patterns
72
+
73
+ - ❌ Writing a message for an empty staging area: no `git diff --cached`, no commit message.
74
+ - ❌ Catch-all `chore`: labeling every feat and fix as `chore` until the type system means nothing.
75
+ - ❌ Novel-length subjects: `feat: add a really useful feature that greatly improves the user experience` — the subject says *what*, leave praise to the user.
76
+ - ❌ Body as implementation log: "first changed line 20 of a.py, then b.py…" — the diff already shows that; the body explains why.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Mahdi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,260 @@
1
+ ---
2
+ name: idea-to-blueprint
3
+ description: "Turn a raw product, app, bot or feature idea into one evidence-backed build blueprint (researched stack, epics, Given/When/Then criteria, tests) that coding agents build one epic per session."
4
+ category: planning
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ source_repo: iniesohidham/idea-to-blueprint
9
+ date_added: "2026-09-30"
10
+ author: iniesohidham
11
+ tags: [prd, specification, product-planning, user-stories, acceptance-criteria, tech-stack, agentic-engineering]
12
+ tools: [claude, codex]
13
+ license: "MIT"
14
+ license_source: "https://github.com/iniesohidham/idea-to-blueprint/blob/main/LICENSE"
15
+ ---
16
+
17
+ # Idea to Blueprint
18
+
19
+ ## Overview
20
+
21
+ Turn a raw idea into a single markdown document that is complete enough for a coding agent to build the product epic by epic, in fresh sessions, without ever having to guess. The blueprint is not a "PRD" in the loose sense: it is the product's only shared memory between the human, the research, and every future build session.
22
+
23
+ The skill runs intake questions, web research and competitor benchmarking, then writes one Markdown blueprint: architecture drivers and style, a version-pinned stack with evidence tags, a quality gate, personas, flows, UX copy, edge cases, and epics broken into stories with Given/When/Then acceptance criteria, tests and a Definition of Done. The blueprint embeds a session protocol so Claude Code or Codex builds it one epic per fresh session.
24
+
25
+ This is the author's own skill, published at [iniesohidham/idea-to-blueprint](https://github.com/iniesohidham/idea-to-blueprint) under the MIT license (see `LICENSE`). The files in `references/`, `assets/` and `scripts/` are unchanged copies of the upstream files; this `SKILL.md` adds the catalog sections (Overview, When to Use, Examples, Limitations, safety notes) around the upstream instructions.
26
+
27
+ ## When to Use This Skill
28
+
29
+ - Use when someone shares a product, app, bot or feature idea (even 2–3 lines) and wants a PRD, spec, backlog, epics, user stories, roadmap or MVP plan, even without saying "PRD".
30
+ - Use when the user wants deep web research, market research or competitor benchmarking before anything is built.
31
+ - Use when the user wants an architecture or tech-stack recommendation with justification and pinned versions, or code-quality and review standards for a new product.
32
+ - Use when the user asks for "a plan for Claude Code/Codex" that a coding agent can execute one epic at a time.
33
+ - Prefer it over lighter PRD skills when research depth, rigor or zero hallucination matters.
34
+ - Do not use it to review an existing PRD, to compare two frameworks in isolation, or to write a single piece of UX copy.
35
+
36
+ ## How It Works
37
+
38
+ Run this skill on the strongest model available at the highest effort/thinking setting the harness offers. If you cannot tell whether that is the case, say so once at the start and continue.
39
+
40
+ ### Why this document has to be different
41
+
42
+ A build session that starts from a blank context has exactly two sources of truth: the repo and this blueprint. Whatever is missing, vague, or wrong in the blueprint becomes a guess in code. So the whole skill is organized around three habits:
43
+
44
+ 1. **Evidence or silence.** Every claim about the outside world (a library, a version, a competitor, a regulation, a market figure, a service's availability in a country) carries an evidence tag: `[VERIFIED — <source>, <date>]`, `[ASSUMED — <why>]`, or `[UNKNOWN → OQ-nn]` (routed to Open Questions). You never fill a gap with a plausible-sounding guess, because the reader has no way to tell your guess from a fact.
45
+ 2. **Decide, don't hedge.** "Use X or Y" pushes the decision onto an agent with less context than you have now. Make the call, record the alternatives and why they lost.
46
+ 3. **Write for zero context.** No "as discussed", no "the usual way". Every ID (persona, flow, screen, copy line, story, criterion) is unique and cross-referenced so a fresh session can resolve everything by search.
47
+
48
+ Everything below serves those three habits.
49
+
50
+ ### Workflow
51
+
52
+ | Phase | What happens | Reference to read |
53
+ |---|---|---|
54
+ | 0. Intake | Parse the idea, do a 2–5 search warm-up, ask ONE batch of questions with defaults, wait | `references/intake-questions.md` |
55
+ | 1. Deep research | Understand the domain, benchmark competitors, derive the architecture drivers and shape, choose the stack for agentic engineering, verify the quality tooling, integrations and locale realities, collect UX benchmarks | `references/research-protocol.md`, `references/architecture-decisions.md`, `references/code-quality-and-review.md` |
56
+ | 2. Decision brief | Present the interpretation, personas, positioning, architecture drivers and shape, stack, quality gate, epic list and open questions in chat; get a go/correct | (template below) |
57
+ | 3. Write the blueprint | Write the document section by section, in chunks, into one `.md` file | `references/blueprint-template.md` plus the topic references it points to |
58
+ | 4. Lint & deliver | Run `scripts/lint_blueprint.py`, fix every error, deliver the file with a short wrap-up | (below) |
59
+ | 5. Build sessions | The user runs one epic per fresh Claude Code / Codex session using the protocol embedded in the blueprint | `references/session-protocol.md` |
60
+
61
+ Do not skip phases 0 and 2. The user explicitly wants to be asked before a long document is produced, and a two-minute checkpoint prevents a hundred pages built on a wrong interpretation. Do not run the phases out of order: research before the intake answers wastes searches on the wrong problem; writing before the brief is approved wastes the document.
62
+
63
+ Talk to the user in the language they wrote in. Persian in → Persian out for all chat and for the human-facing prose of the document (see Language convention).
64
+
65
+ ### Phase 0 — Intake
66
+
67
+ Read `references/intake-questions.md` before asking anything. The rules that matter most:
68
+
69
+ - **Warm up first.** Run 2–5 quick searches on the idea so the questions are concrete ("I see three products in this space — A, B, C — which is closest to what you mean?") instead of generic.
70
+ - **One batch, defaults on every question.** Group the questions, put a sensible default next to each, and say that answering "defaults" or skipping any question is fine. Never ask in dribs and drabs.
71
+ - **Never ask what is already answered or inferable.** Cues from the message decide: language, currency, city names, local services, ".ir" domains, Jalali dates, "کاربر ایرانی" → the users are probably Iranian, so ask to *confirm* it in one line rather than asking "where are your users?".
72
+ - **Ask only what changes the architecture, the personas, or the scope.** A big product needs about 10–15 questions; a single feature needs 3–6.
73
+ - Where an elicitation UI tool exists (tappable options), use it for the closed questions; put open questions in prose right after.
74
+
75
+ When the answers arrive, write every unanswered item as an `[ASSUMED — …]` row in your notes; those rows become the Assumptions section later.
76
+
77
+ ### Phase 1 — Deep research and benchmarking
78
+
79
+ Read `references/research-protocol.md` and follow its seven tracks **in order**:
80
+
81
+ - **A. Understand the idea** — domain concepts, vocabulary (this becomes the Glossary), how the problem is solved today, adjacent regulation to flag (never legal advice).
82
+ - **B. Benchmark** — 5–10 direct and indirect competitors (global, plus local ones when the market is Iran or another specific country), a feature matrix, best-in-class behaviour per key flow, common user complaints (paraphrased from reviews, never quoted), the gap this product fills, a positioning statement.
83
+ - **C. Architecture drivers and shape** (`references/architecture-decisions.md`) — derive ranked, *measurable* quality-attribute drivers from the personas, the scale ceiling, the failure cost of the core loop and the hosting reality; name the explicit non-drivers; score 2–3 candidate architecture styles against them; decide the shape, the module boundaries and the exit triggers that would justify revisiting it. Verify the framework's own recommended structure and whether boundary rules can be enforced mechanically in the candidate languages.
84
+ - **D. Stack for agentic engineering** — choose the language, framework, database, testing and tooling using the weighted criteria in the protocol (mainstream + heavily documented, strict static typing, one-command deterministic `check`, fast tests, LTS/stable, few dependencies, hosting fit for the market) **and** the drivers from C. Verify current stable versions, deprecations and licenses, and pin them.
85
+ - **E. Quality bar and tooling** (`references/code-quality-and-review.md`) — verify the tools that make the gate real for the chosen stack (formatter, strict lint config, typechecker flags, test runner, coverage, mutation testing if a maintained one exists, SAST and dependency audit, secret scanning, duplication detection, accessibility checks, architecture-rule library), the language's official style guide, the CI capability of the chosen host, the current security baseline for the category, and — only if the document will quote them — the current delivery-metric definitions and the current evidence on AI-authored code quality.
86
+ - **F. Integrations and locale realities** — payments, SMS/OTP, email, maps, push, app stores, hosting/CDN. For Iran, availability of foreign services changes with sanctions and filtering; verify today's status for each one you rely on and record the date.
87
+ - **G. UX benchmarks** — onboarding, empty states, error handling and accessibility norms from the best products in the space.
88
+
89
+ C before D matters. Choosing the framework first and then writing drivers that happen to justify it is the most common silent failure in a document like this, and it is undetectable in the finished file unless you ask whether any driver could have changed the answer.
90
+
91
+ Log every source (URL, title, access date) as you go; the Sources section is built from this log, not reconstructed afterwards. Expect 20–60 searches for a whole product; post a one-line progress note to the user every few searches ("benchmarking local competitors…", "verifying gateway sandbox…") so a long research phase never looks stalled. If web tools are unavailable, stop and tell the user: a blueprint written from memory alone cannot meet the no-hallucination bar, so either they enable web access or the document is delivered with every external fact marked `[UNVERIFIED]` and a warning on the cover.
92
+
93
+ ### Phase 2 — Decision brief (checkpoint)
94
+
95
+ Before writing the document, post a brief in chat, roughly one screen long, in the user's language:
96
+
97
+ ```
98
+ ## Decision brief — <product name>
99
+ **How I read the idea:** 2–3 sentences. What it is, for whom, and the single outcome it delivers.
100
+ **Users are:** <market/country>, <B2C/B2B>, <language(s)>. (confirmed / assumed)
101
+ **Personas:** P1 <name> — one line. P2 … (3–5 max, plus anti-personas if useful)
102
+ **Benchmark in one paragraph:** who exists, what the best of them do, the gap we take.
103
+ **Architecture drivers (top 3):** AD-1 … (target), AD-2 …, AD-3 … — and what we are explicitly NOT optimising for.
104
+ **Shape (locked unless you object):** <style> — one line on why it beat <runner-up>, and the trigger that would make us revisit it.
105
+ **Stack (locked unless you object):** language · framework · DB · hosting · testing — one line each with the deciding reason and what the runner-up would have bought.
106
+ **Quality gate:** `check` = … (expected runtime …); critical e2e paths: …; what we will measure: …
107
+ **Design direction:** reference-based (<their reference>) or chosen (<system/style>) — one line.
108
+ **Epics in order:** E00 Foundation, E01 …, E02 … (titles only, 6–14 typical)
109
+ **Needs your answer before I write:** only genuinely blocking questions, numbered OQ-01…
110
+ **Everything else I will assume** as written in the Assumptions table.
111
+ Reply "go" to write the full blueprint, or correct any line.
112
+ ```
113
+
114
+ If the user pre-authorised ("don't stop to ask, just write"), still post the brief and continue without waiting. Otherwise wait for the reply and fold corrections into the research notes.
115
+
116
+ ### Phase 3 — Write the blueprint
117
+
118
+ Read `references/blueprint-template.md` and keep it open; it has the full section skeleton, the depth target per section, table formats and the ID schemes. Before writing the relevant sections, read the topic references it points to:
119
+
120
+ - Personas, flows, screens, design direction → `references/design-minimal.md`
121
+ - UX writing and copy tables → `references/ux-writing-guide.md` (its Persian pack when users are Iranian)
122
+ - Architecture drivers, style decision, module boundaries, fitness functions, decision records → `references/architecture-decisions.md`
123
+ - Quality gate, review checklist, test-quality rules, metrics and anti-metrics → `references/code-quality-and-review.md`
124
+ - Edge-case register and per-story edge cases → `references/edge-case-catalog.md`
125
+ - Stories, acceptance criteria, tests, DoD → `references/stories-ac-tests.md`
126
+ - Session protocol and Epic 0 → `references/session-protocol.md` and the files in `assets/`
127
+
128
+ Writing mechanics that matter:
129
+
130
+ - **Write in chunks.** Create the file with the cover and table of contents, then append one major section per write operation. A hundred-page document written in one output gets truncated or rushed; a document written section by section keeps its quality to the end.
131
+ - **IDs everywhere.** Personas `P1…`, flows `F-01…`, screens `S-01…`, copy lines `CP-<screen>-<n>`, entities `ENT-…`, epics `E00…`, stories `E03-S02`, criteria `AC-1…` inside a story, open questions `OQ-01…`, edge cases `EC-<cat>-<n>`. The linter and the future build sessions rely on them.
132
+ - **Machine-facing text in English, human-facing prose in the user's language** (details in Language convention). Every heading carries an English anchor so the linter and the coding agent can find sections regardless of prose language.
133
+ - **Depth beats brevity here.** The user has said a 100-page file is fine. The right length is whatever leaves no story, screen, copy line or edge case unspecified. Cut repetition, not content.
134
+ - **Every decision names its losers and its price.** Stack, architecture style, design system, auth model, data model: state the alternatives considered, the deciding reason, and *what the rejected option would have bought you*. A decision with no stated cost was not a decision.
135
+ - **Decide the shape before the tools.** Architecture drivers → architecture style → technology. If a driver could not have changed the technology choice, the drivers are decoration.
136
+ - **Quality is specified, not assumed.** The gate, the review checklist and the metrics go in the document with concrete commands and thresholds, because the reviewer is often one person reading a diff an agent produced in a minute, and a standard invented at review time is a different standard every time.
137
+
138
+ ### Phase 4 — Lint and deliver
139
+
140
+ Run the linter and fix everything it reports as an error (warnings are judgement calls — resolve or justify them):
141
+
142
+ ```bash
143
+ python3 <this skill's folder>/scripts/lint_blueprint.py <path/to/blueprint.md>
144
+ ```
145
+
146
+ It checks required sections, placeholder text (TODO/TBD/…), story ID uniqueness, that every story has Acceptance Criteria / Edge cases / Tests, that every epic has a Definition of Done, that every `[UNKNOWN → OQ-nn]` resolves to an Open Questions entry, that tech-stack rows carry evidence tags, that every persona is used by at least one story, and that a Sources section exists with URLs. It also checks the quality layer: that architecture drivers `AD-n` exist with measurable targets and are referenced by the style decision, that a `check` command and a review checklist are present in the Quality section, that fitness functions are declared, and that no banned productivity metric (lines of code, commits per engineer, coverage as a target) appears.
147
+
148
+ Then do the human pass the linter cannot: read the Executive summary, one persona, one flow and one epic end-to-end as if you were a fresh session. Anything you had to infer, write down.
149
+
150
+ Deliver:
151
+
152
+ - In a chat surface with file tools: save under the outputs directory as `<product>-blueprint.md`, present it with the file-presenting tool.
153
+ - In Claude Code / Codex: save to `docs/BLUEPRINT.md` in the repo (or the path the user names) and also create `docs/PROGRESS.md`, `docs/DECISIONS.md` and `AGENTS.md` + `CLAUDE.md` from `assets/`, filled in for this product, so Epic 0 can start immediately.
154
+ - Wrap-up message: 5–10 lines. Point at the Assumptions table and the Open Questions, name the two or three things you are least sure about, and tell the user the next step is to open a fresh coding session and paste the Epic 0 session prompt from the document's appendix. Do not re-summarise the document.
155
+
156
+ ### Language convention
157
+
158
+ - **Chat and human-facing prose** (executive summary, research narrative, persona descriptions, rationale columns, risks): the user's language.
159
+ - **Machine-facing text**: English, always — epic titles, story sentences, acceptance criteria, edge cases, test names, task lists, Definition of Done, architecture, data model, API contracts, conventions, session protocol, file names, IDs. This text is pasted into or read by a coding agent; English keeps it unambiguous.
160
+ - **Product copy** (UX writing tables, notification/SMS/email templates): the product's language(s), with an English gloss column so the agent understands intent. Iranian users → Persian copy following the Persian pack.
161
+ - **Headings**: bilingual when prose is not English, e.g. `## 11. راهنمای UX Writing (UX Writing)` — the English anchor must be present.
162
+ - State this convention once in the document's "How to use this document" section so the reader knows why the language switches.
163
+
164
+ If the user asks for a different split (all English, all Persian), honour it, but keep IDs and code-facing identifiers in English regardless.
165
+
166
+ ### Detecting the market from the message
167
+
168
+ Look for: the language of the message, currency words (تومان، ریال، IRR), Iranian cities or provinces, Iranian services (Snapp, Digikala, Shaparak, Bale, Eitaa, Rubika, Zarinpal, Kavenegar…), `.ir` domains, Jalali dates, mentions of کد ملی, or explicit "کاربر ایرانی". Any of these → treat "users are in Iran" as the working hypothesis, confirm it in intake, and if confirmed load the Iran-specific parts of the research protocol, the UX writing guide and the edge-case catalog. Apply the same logic for any other specific market the message reveals (build the equivalent localisation pack from research if no prebuilt one exists).
169
+
170
+ ### Design reference handling
171
+
172
+ If the user provides a reference (Figma, URL, screenshots, brand kit): extract tokens and patterns from it and document them as the design direction, noting where you deviate for usability or RTL. If not: choose a direction yourself — mobile-first, minimal, standard components, a well-documented design system verified via search — and say so in the Decision brief so they can object once. Never leave design "to be decided later"; the build sessions need concrete tokens and component decisions.
173
+
174
+ ### Guardrails that override everything else
175
+
176
+ - If the idea involves strangers interacting, user-generated media, minors, payments, health or money advice: baseline safety (report/block/rate-limit, consent, audit) ships inside the same epic as the core loop, never as a later "nice to have". Say so in that epic's rationale.
177
+ - Legal, tax and regulatory matters are flagged as Open Questions for a professional, never answered.
178
+ - Keep moderation and abuse-prevention specs at the level of *what the system does*; never write bypass logic or filter word-lists.
179
+ - Never fabricate a source, a version number, a competitor feature or a metric. `[UNKNOWN]` is always an acceptable answer; a confident wrong answer never is.
180
+
181
+ ## Examples
182
+
183
+ ### Example 1: Full product from a two-line idea
184
+
185
+ ```text
186
+ I want a Telegram bot that helps freelancers track invoices and nudges late clients.
187
+ Do the research, pick the stack, write me the PRD and epics so Codex can build it one epic at a time.
188
+ ```
189
+
190
+ The agent runs a short search warm-up, asks one batch of intake questions with defaults, researches and benchmarks, posts the decision brief, waits for "go", then writes the blueprint section by section and lints it.
191
+
192
+ ### Example 2: Internal tool with a smaller scope
193
+
194
+ ```text
195
+ An internal tool for our 12-person support team to tag and search customer emails from Gmail,
196
+ nothing fancy. Give me the full spec with acceptance criteria and tests.
197
+ ```
198
+
199
+ ### Example 3: Iranian market (Persian prose, English machine-facing text)
200
+
201
+ ```text
202
+ یه اپ می‌خوام که رستوران‌های تهران بتونن منوی QR داشته باشن و مشتری از سر میز سفارش بده و با زرین‌پال پرداخت کنه. برام کامل پلن کن که با Claude Code بسازم.
203
+ ```
204
+
205
+ The market cues (Persian, Tehran, Zarinpal) make "users are in Iran" the working hypothesis; the agent confirms it in intake and loads the Iran-specific research, UX writing and edge-case material.
206
+
207
+ ### Example 4: Lint the finished blueprint
208
+
209
+ Run from this skill's folder, pointing at the blueprint file:
210
+
211
+ ```bash
212
+ python3 scripts/lint_blueprint.py docs/BLUEPRINT.md
213
+ ```
214
+
215
+ Exit code 0 means no errors (warnings may remain); add `--strict` to fail on warnings as well.
216
+
217
+ ## Best Practices
218
+
219
+ - ✅ Ask one batch of intake questions with a default next to each, then wait for the answers.
220
+ - ✅ Tag every external claim `[VERIFIED — source, date]`, `[ASSUMED — why]` or `[UNKNOWN → OQ-nn]`.
221
+ - ✅ Derive the architecture drivers before choosing the stack, and name what each rejected option would have bought.
222
+ - ✅ Write the document in chunks, one major section per write, and run the linter before delivering.
223
+ - ❌ Don't skip the decision brief checkpoint before writing a long document.
224
+ - ❌ Don't fill a research gap with a plausible guess; route it to Open Questions.
225
+
226
+ ## Limitations
227
+
228
+ - Needs web search to meet its no-hallucination bar. Without web access the blueprint is delivered with every external fact marked `[UNVERIFIED]` and a warning on the cover.
229
+ - A whole product typically takes 20–60 searches and a long writing phase, so it is slow and token-heavy compared with a quick PRD.
230
+ - Legal, tax and regulatory questions are flagged as Open Questions for a professional, never answered.
231
+ - The prebuilt localisation pack covers Iran; other markets get their localisation built from research during the run.
232
+ - `scripts/lint_blueprint.py` checks structure and cross-references, not whether the research is correct; the human read-through in Phase 4 is still required.
233
+ - The skill plans the build; the code is written later in separate coding sessions that follow the blueprint.
234
+
235
+ ## Security & Safety Notes
236
+
237
+ - The only command the skill runs is the bundled linter, `python3 scripts/lint_blueprint.py <blueprint.md>`. It uses the Python standard library, reads the one file it is given, prints findings and makes no network calls.
238
+ - Web research uses the harness's own search and fetch tools; the skill needs no API keys or credentials. Search queries describe the idea, so ask before searching for details the user marks as confidential.
239
+ - It creates Markdown files only: the blueprint, and in Claude Code / Codex also `docs/PROGRESS.md`, `docs/DECISIONS.md`, `AGENTS.md` and `CLAUDE.md`. If any of these already exist, show the proposed changes and merge them with the user's approval instead of overwriting.
240
+ - It does not delete files, install packages, push, or deploy.
241
+
242
+ ## Common Pitfalls
243
+
244
+ - **Problem:** The stack is chosen first and the architecture drivers are written to justify it.
245
+ **Solution:** Run research track C (drivers and shape) before D (stack), and check that at least one driver could have changed the technology choice.
246
+ - **Problem:** A hundred-page document written in one output gets truncated or rushed.
247
+ **Solution:** Create the file with the cover and table of contents, then append one major section per write.
248
+ - **Problem:** "Use X or Y" leaves the decision to a build session with less context.
249
+ **Solution:** Decide, record the alternatives, and state why they lost.
250
+
251
+ ## Related Skills
252
+
253
+ - `@spec-driven-development` - Lighter spec-before-code workflow when deep research and benchmarking are not needed.
254
+ - `@to-prd` - Turns an existing conversation into a PRD without an interview or research phase.
255
+ - `@planning-and-task-breakdown` - Breaks an existing spec into ordered implementation tasks.
256
+ - `@brainstorming` - Explore and shape the idea before committing to a blueprint.
257
+
258
+ ## Additional Resources
259
+
260
+ - [idea-to-blueprint on GitHub](https://github.com/iniesohidham/idea-to-blueprint)
@@ -0,0 +1,38 @@
1
+ # {{PRODUCT_NAME}} — agent instructions
2
+
3
+ You are building this product one epic per fresh session. Nothing is remembered between sessions; the repo is the memory.
4
+
5
+ ## Read in this order, every session
6
+ 1. `docs/PROGRESS.md` — where we are, evidence, deviations, preconditions
7
+ 2. `docs/BLUEPRINT.md` — sections 12–16 (architecture, stack, conventions, quality, edge cases, delivery plan), 18 (session protocol), 21 (glossary), and the epic you were asked to build in section 17 plus every flow/screen/copy ID it references
8
+ 3. `docs/DECISIONS.md` — why things are the way they are
9
+ 4. `docs/REVIEW-CHECKLIST.md` — the standard every story is reviewed against before it is DONE
10
+
11
+ ## Rules
12
+ - Follow `docs/BLUEPRINT.md` §18 (session protocol) exactly: orient → verify preconditions → plan → build story by story with tests first → verify gates → update PROGRESS/DECISIONS → print handoff.
13
+ - Quality gate: `{{CHECK_COMMAND}}` must be green before every commit and at handoff. It runs format, lint, typecheck, tests and the architecture fitness functions; it must exit non-zero on any failure. **Never weaken, skip or bypass a gate rule to make a change pass** — if it must change, that is a DR entry plus a follow-up story.
14
+ - Self-review before handoff: walk the review checklist in `docs/REVIEW-CHECKLIST.md` (BLUEPRINT §14.4) over your own diff, story by story, reading the diff rather than your memory of writing it. Fix what fails. Report `reviewed: n items, n fixed, n accepted with reason` in the handoff — never a bare tick.
15
+ - Search the repo for an existing implementation before writing a new helper, mapper or utility. Duplicated logic is the most common defect in agent-written code, and you cannot see what you did not read.
16
+ - Every external symbol you use must trace to a pinned dependency in BLUEPRINT §13.1. If you are not certain a function, parameter or config key exists in the pinned version, check the docs — do not write it from memory.
17
+ - Tests assert concrete expected values and observable behaviour, never internal call sequences. A test that only checks a type, a length or that nothing threw is not a test. Each one must be seen failing before the implementation.
18
+ - Keep each story's diff within {{DIFF_LIMIT_LINES}} changed lines. If it will not fit, say so in the plan — the story is mis-sized and needs an amendment, not a bigger diff.
19
+ - Copy strings come from the copy tables (`CP-*` IDs) in the blueprint. Never improvise user-facing text.
20
+ - Acceptance criteria are the spec. If an AC is wrong, impossible or ambiguous: do not silently deviate — record an Amendment (BLUEPRINT §18) and, for user-visible/money/data/security changes, ask first.
21
+ - Anything not in the blueprint or PROGRESS.md is a decision → `docs/DECISIONS.md` (DR-nn) in the same commit. New dependency = DR entry.
22
+ - Stay inside the epic's scope. Ideas for later go to PROGRESS.md "Parking lot".
23
+ - Re-check every `[VERIFY-AT-BUILD]` item your epic depends on before relying on it; record the result.
24
+ - Commit format: `type(scope): message [E03-S02]`. Branch: `epic/E03` (or trunk if the blueprint says so).
25
+ - Never mark a story or epic DONE without an evidence line per AC in PROGRESS.md.
26
+
27
+ ## Commands
28
+ - Quality gate: `{{CHECK_COMMAND}}`
29
+ - Tests only: `{{TEST_COMMAND}}`
30
+ - Dev server: `{{DEV_COMMAND}}`
31
+ - Migrate: `{{MIGRATE_COMMAND}}`
32
+ - Deploy staging: `{{DEPLOY_STAGING_COMMAND}}` (see BLUEPRINT §13.8)
33
+
34
+ ## Conventions (summary — full text in BLUEPRINT §13)
35
+ - Language/runtime: {{RUNTIME_AND_VERSION}} · Framework: {{FRAMEWORK_AND_VERSION}} · DB: {{DB_AND_VERSION}}
36
+ - Strict typing on; no untyped escapes; typed errors; no swallowed exceptions; structured logs without PII.
37
+ - Tests: unit next to code / integration in `{{INTEGRATION_TEST_DIR}}` / e2e in `{{E2E_DIR}}`; factories in `{{FACTORIES_DIR}}`.
38
+ - Locale: {{LOCALE_RULES_ONE_LINE, e.g. "RTL, Persian digits in UI, Jalali dates in UI, UTC in storage, Toman with unit label"}}