@tamng0905/builder-essential-skills 0.1.0

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.
Files changed (66) hide show
  1. package/.claude/agents/lead-builder.md +55 -0
  2. package/.claude/agents/lead-reviewer.md +39 -0
  3. package/README.md +276 -0
  4. package/assets/readme-hero.png +0 -0
  5. package/assets/skill-cards/async-learning-teacher.svg +7 -0
  6. package/assets/skill-cards/code-standards.svg +7 -0
  7. package/assets/skill-cards/lead-research.svg +7 -0
  8. package/assets/skill-cards/lead.svg +7 -0
  9. package/assets/skill-cards/orwell-writing.svg +7 -0
  10. package/assets/skill-cards/session-profiler.svg +7 -0
  11. package/assets/skill-cards/validate-market.svg +7 -0
  12. package/assets/skill-cards/write-blog.svg +7 -0
  13. package/bin/builder-essential-skills.js +134 -0
  14. package/install.ps1 +58 -0
  15. package/install.sh +63 -0
  16. package/package.json +24 -0
  17. package/skills/async-learning-teacher/README.md +50 -0
  18. package/skills/async-learning-teacher/SKILL.md +192 -0
  19. package/skills/async-learning-teacher/agents/openai.yaml +4 -0
  20. package/skills/code-standards/README.md +27 -0
  21. package/skills/code-standards/SKILL.md +51 -0
  22. package/skills/lead/README.md +29 -0
  23. package/skills/lead/SKILL.md +222 -0
  24. package/skills/lead/config.py +359 -0
  25. package/skills/lead/dispatch.md +342 -0
  26. package/skills/lead/loop.md +103 -0
  27. package/skills/lead/models.json +34 -0
  28. package/skills/lead/research.md +76 -0
  29. package/skills/lead/status.ps1 +114 -0
  30. package/skills/lead/status.sh +110 -0
  31. package/skills/lead/watchdog.ps1 +90 -0
  32. package/skills/lead/watchdog.sh +88 -0
  33. package/skills/lead-research/README.md +27 -0
  34. package/skills/lead-research/SKILL.md +157 -0
  35. package/skills/lead-research/tactics.md +150 -0
  36. package/skills/orwell-writing/README.md +27 -0
  37. package/skills/orwell-writing/SKILL.md +44 -0
  38. package/skills/orwell-writing/agents/openai.yaml +4 -0
  39. package/skills/session-profiler/README.md +25 -0
  40. package/skills/session-profiler/SKILL.md +103 -0
  41. package/skills/session-profiler/agents/openai.yaml +4 -0
  42. package/skills/session-profiler/scripts/requirements.txt +2 -0
  43. package/skills/session-profiler/scripts/session_profiler/__init__.py +5 -0
  44. package/skills/session-profiler/scripts/session_profiler/analyses.py +246 -0
  45. package/skills/session-profiler/scripts/session_profiler/cli.py +77 -0
  46. package/skills/session-profiler/scripts/session_profiler/dataset.py +369 -0
  47. package/skills/session-profiler/scripts/session_profiler/discover.py +191 -0
  48. package/skills/session-profiler/scripts/session_profiler/toc.py +74 -0
  49. package/skills/session-profiler/scripts/session_profiler/trace.py +146 -0
  50. package/skills/session-profiler/scripts/sp +20 -0
  51. package/skills/session-profiler/scripts/tests/codex_home/sessions/2026/01/01/rollout-child.jsonl +7 -0
  52. package/skills/session-profiler/scripts/tests/codex_home/sessions/2026/01/01/rollout-root.jsonl +10 -0
  53. package/skills/session-profiler/scripts/tests/fixture/main/subagents/agent-abc.jsonl +2 -0
  54. package/skills/session-profiler/scripts/tests/fixture/main/subagents/agent-abc.meta.json +1 -0
  55. package/skills/session-profiler/scripts/tests/fixture/main.jsonl +7 -0
  56. package/skills/session-profiler/scripts/tests/test_fixture.py +58 -0
  57. package/skills/validate-market/README.md +27 -0
  58. package/skills/validate-market/SKILL.md +202 -0
  59. package/skills/write-blog/README.md +27 -0
  60. package/skills/write-blog/SKILL.md +142 -0
  61. package/skills/write-blog/check.sh +52 -0
  62. package/skills/write-blog/reference/angles.md +51 -0
  63. package/skills/write-blog/reference/craft.md +94 -0
  64. package/skills/write-blog/reference/seo.md +116 -0
  65. package/skills/write-blog/reference/voice.md +64 -0
  66. package/skills/write-blog/reference/wiring.md +113 -0
package/install.ps1 ADDED
@@ -0,0 +1,58 @@
1
+ param([switch]$Project)
2
+
3
+ # Central skills hub installer. The same skills land in Claude Code
4
+ # (~\.claude\skills) and in Codex (${CODEX_HOME:-~\.codex}\skills); the agents /lead dispatches
5
+ # land in ~\.claude\agents. Use -Project to install into the current repo only.
6
+
7
+ $srcRoot = Join-Path $PSScriptRoot "skills"
8
+ $agentsSrc = Join-Path $PSScriptRoot ".claude\agents"
9
+ if ($Project) {
10
+ $claudeDest = Join-Path (Get-Location) ".claude\skills"
11
+ $codexDest = Join-Path (Get-Location) ".codex\skills"
12
+ $agentsDest = Join-Path (Get-Location) ".claude\agents"
13
+ } else {
14
+ $claudeDest = Join-Path $env:USERPROFILE ".claude\skills"
15
+ $codexHome = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $env:USERPROFILE ".codex" }
16
+ $codexDest = Join-Path $codexHome "skills"
17
+ $agentsDest = Join-Path $env:USERPROFILE ".claude\agents"
18
+ }
19
+
20
+ function Install-Into($destRoot, $label) {
21
+ New-Item -ItemType Directory -Force $destRoot | Out-Null
22
+ foreach ($skill in Get-ChildItem -Directory $srcRoot) {
23
+ $dest = Join-Path $destRoot $skill.Name
24
+ if (Test-Path $dest) { Remove-Item -Recurse -Force $dest }
25
+ Copy-Item -Recurse $skill.FullName $dest
26
+ Get-ChildItem -LiteralPath $dest -Recurse -Directory -Filter "__pycache__" -ErrorAction SilentlyContinue | Remove-Item -Recurse -Force
27
+ Write-Host "Installed $label /$($skill.Name) to $dest"
28
+ }
29
+ }
30
+
31
+ # Claude Code reads skills from ~\.claude\skills; Codex from ${CODEX_HOME:-~\.codex}\skills.
32
+ Install-Into $claudeDest "Claude"
33
+ Install-Into $codexDest "Codex"
34
+
35
+ # The /lead skill dispatches builder/reviewer subagents defined in .claude\agents.
36
+ if (Test-Path $agentsSrc) {
37
+ New-Item -ItemType Directory -Force $agentsDest | Out-Null
38
+ foreach ($agent in Get-ChildItem -File -Filter "*.md" $agentsSrc) {
39
+ Copy-Item $agent.FullName (Join-Path $agentsDest $agent.Name)
40
+ Write-Host "Installed agent $($agent.Name) to $agentsDest"
41
+ }
42
+ }
43
+
44
+ Write-Host ""
45
+ $py = Get-Command python -ErrorAction SilentlyContinue
46
+ if (-not $py) { $py = Get-Command python3 -ErrorAction SilentlyContinue }
47
+ if ($py) {
48
+ Write-Host "Model routing for /lead (defaults):"
49
+ & $py.Path (Join-Path $srcRoot "lead\config.py") --repo-root (Get-Location)
50
+ } else {
51
+ Write-Host "python not found - install it to use 'python skills\lead\config.py' for model routing."
52
+ }
53
+ $codex = Get-Command codex -ErrorAction SilentlyContinue
54
+ if ($codex) {
55
+ Write-Host "Codex CLI found: $(codex --version)"
56
+ } else {
57
+ Write-Host "Codex CLI not found (optional builder backend for /lead): npm i -g @openai/codex@latest"
58
+ }
package/install.sh ADDED
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Central skills hub installer. The same skills land in Claude Code
5
+ # (~/.claude/skills) and in Codex (${CODEX_HOME:-~/.codex}/skills), and the agents the /lead
6
+ # skill dispatches land in ~/.claude/agents. Pass --project (or -p) to install
7
+ # into the current repo only.
8
+
9
+ ROOT="$(cd "$(dirname "$0")" && pwd)"
10
+ SRC_ROOT="$ROOT/skills"
11
+ AGENTS_SRC="$ROOT/.claude/agents"
12
+ project=0
13
+ case "${1:-}" in --project|-p) project=1;; esac
14
+
15
+ if [ "$project" -eq 1 ]; then
16
+ CLAUDE_DEST="$(pwd)/.claude/skills"
17
+ CODEX_DEST="$(pwd)/.codex/skills"
18
+ AGENTS_DEST="$(pwd)/.claude/agents"
19
+ else
20
+ CLAUDE_DEST="$HOME/.claude/skills"
21
+ CODEX_DEST="${CODEX_HOME:-$HOME/.codex}/skills"
22
+ AGENTS_DEST="$HOME/.claude/agents"
23
+ fi
24
+
25
+ install_into() {
26
+ dest_root=$1; label=$2
27
+ mkdir -p "$dest_root"
28
+ for skill in "$SRC_ROOT"/*/; do
29
+ name="$(basename "$skill")"
30
+ rm -rf "${dest_root:?}/$name"
31
+ cp -r "$skill" "$dest_root/$name"
32
+ find "$dest_root/$name" -name '__pycache__' -type d -prune -exec rm -rf {} + 2>/dev/null || true
33
+ echo "Installed $label /$name to $dest_root/$name"
34
+ done
35
+ }
36
+
37
+ # Claude Code reads skills from ~/.claude/skills (user) or $CWD/.claude/skills (repo).
38
+ install_into "$CLAUDE_DEST" "Claude"
39
+ # Codex reads user skills from ${CODEX_HOME:-~/.codex}/skills.
40
+ install_into "$CODEX_DEST" "Codex"
41
+
42
+ # The /lead skill dispatches builder/reviewer subagents defined in .claude/agents.
43
+ if [ -d "$AGENTS_SRC" ]; then
44
+ mkdir -p "$AGENTS_DEST"
45
+ for agent in "$AGENTS_SRC"/*.md; do
46
+ [ -e "$agent" ] || continue
47
+ cp "$agent" "$AGENTS_DEST/"
48
+ echo "Installed agent $(basename "$agent") to $AGENTS_DEST"
49
+ done
50
+ fi
51
+
52
+ echo
53
+ if command -v python3 >/dev/null 2>&1; then
54
+ echo "Model routing for /lead (defaults):"
55
+ python3 "$SRC_ROOT/lead/config.py" --repo-root "$(pwd)" || true
56
+ else
57
+ echo "python3 not found - install it to use 'python skills/lead/config.py' for model routing."
58
+ fi
59
+ if command -v codex >/dev/null 2>&1; then
60
+ echo "Codex CLI found: $(codex --version)"
61
+ else
62
+ echo "Codex CLI not found (optional builder backend for /lead): npm i -g @openai/codex@latest"
63
+ fi
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@tamng0905/builder-essential-skills",
3
+ "version": "0.1.0",
4
+ "description": "Builder's Essential Skills — reusable workflows for Claude Code and Codex",
5
+ "type": "commonjs",
6
+ "scripts": {
7
+ "test": "node --test"
8
+ },
9
+ "bin": {
10
+ "builder-essential-skills": "bin/builder-essential-skills.js"
11
+ },
12
+ "files": [
13
+ "bin",
14
+ "skills",
15
+ "assets",
16
+ ".claude/agents",
17
+ "install.ps1",
18
+ "install.sh",
19
+ "README.md"
20
+ ],
21
+ "engines": {
22
+ "node": ">=18"
23
+ }
24
+ }
@@ -0,0 +1,50 @@
1
+ # Async Learning Teacher
2
+
3
+ <p align="center">
4
+ <img src="../../assets/skill-cards/async-learning-teacher.svg" alt="async-learning-teacher skill card" width="100%">
5
+ </p>
6
+
7
+ ## Install
8
+
9
+ Install this skill for your user account:
10
+
11
+ ```bash
12
+ npx @tamng0905/builder-essential-skills --skill async-learning-teacher
13
+ ```
14
+
15
+ Install it into the current repository instead:
16
+
17
+ ```bash
18
+ npx @tamng0905/builder-essential-skills --skill async-learning-teacher --project
19
+ ```
20
+
21
+ Restart Claude Code or Codex after installation, then ask it to teach you a
22
+ saved link, paper, article, post, video, or reference collection.
23
+
24
+ A portable agent skill for turning saved links, papers, articles, posts, videos, and reference collections into approachable teaching artifacts for later study.
25
+
26
+ ## What It Does
27
+
28
+ Async Learning Teacher helps you queue interesting resources now and learn from them later. Instead of saving raw links that are hard to restart from, the agent converts them into readable explanations, study notes, or interactive tutoring checkpoints.
29
+
30
+ It supports two learning modes:
31
+
32
+ ## Quick Teaching
33
+
34
+ Use this for a single link, paper, blog post, tweet thread, video, or small source set.
35
+
36
+ The agent creates a complete teaching artifact in one pass:
37
+
38
+ - Why the resource matters
39
+ - Prerequisites
40
+ - Step-by-step chapter-style explanation
41
+ - Subtle points and examples
42
+ - What to remember
43
+ - Follow-up questions
44
+ - Validation gaps
45
+
46
+ Example prompt:
47
+
48
+ ```text
49
+ Use $async-learning-teacher to teach me this paper:
50
+ https://arxiv.org/abs/...
@@ -0,0 +1,192 @@
1
+ ---
2
+ name: async-learning-teacher
3
+ description: Transform saved links, papers, articles, posts, videos, and reference collections into approachable AI teaching artifacts for later study. Use when a user wants to queue learning material, create a readable explanation from a source, teach a paper or post step by step, or run an interactive tutor that validates understanding over multiple sessions.
4
+ ---
5
+
6
+ # Async Learning Teacher
7
+
8
+ ## Mission
9
+
10
+ Convert raw learning captures into approachable teaching artifacts so a user can queue interesting resources now and study them later with less friction than reading the original source cold.
11
+
12
+ Use this skill for:
13
+
14
+ - Single links: blog posts, essays, papers, tweet threads, videos, documentation pages, or notes.
15
+ - Reference sets: 5-10+ links about one domain or topic.
16
+ - User-supplied pasted text when a link is unavailable, paywalled, deleted, or hard to scrape.
17
+ - Ongoing tutoring sessions where the agent should validate understanding before moving forward.
18
+
19
+ ## Modes
20
+
21
+ Choose one mode from the user's request.
22
+
23
+ ### Quick Teaching
24
+
25
+ Use `quick-teach` for one source or a small tightly related set of sources.
26
+
27
+ Intent:
28
+
29
+ ```markdown
30
+ Teach me this resource. Break it down step by step. Write each step like a chapter in a book. Write it all out at once. For subtle or difficult concepts, break things down further and use examples.
31
+ ```
32
+
33
+ Produce a complete teaching artifact in one response or one saved document.
34
+
35
+ ### Interactive Tutor
36
+
37
+ Use `interactive-tutor` for broad topics, reference collections, or requests that explicitly ask to validate understanding.
38
+
39
+ Intent:
40
+
41
+ ```markdown
42
+ Resources:
43
+ [reference links or pasted excerpts]
44
+
45
+ I would like you to teach me about [topic]. Presume I understand [baseline]. Build up my understanding from scratch step by step. Do not move to the next step without validating my current understanding. For subtle or difficult concepts, break things down further and use examples.
46
+ ```
47
+
48
+ Teach one step at a time. Stop at the end of each step and ask the user to explain their understanding or answer validation questions before continuing.
49
+
50
+ Default mode selection:
51
+
52
+ - One link or one source: `quick-teach`.
53
+ - Multiple references plus a broad topic: `interactive-tutor`.
54
+ - User says "quiz me", "validate me", "teach me over time", or "do not move on": `interactive-tutor`.
55
+
56
+ ## Workflow
57
+
58
+ 1. Parse the user's capture:
59
+ - Source URLs
60
+ - Pasted source text
61
+ - Topic
62
+ - User's stated baseline knowledge
63
+ - Desired output location or format, if any
64
+ - Requested mode, if any
65
+
66
+ 2. Inspect the source when possible:
67
+ - Fetch or read available content.
68
+ - If access is unavailable, use the URL, title, abstract, snippet, or pasted user context.
69
+ - Clearly mark inaccessible or unverified source material.
70
+
71
+ 3. Create the teaching artifact:
72
+ - Use `quick-teach` for one-shot explanations.
73
+ - Use `interactive-tutor` for staged learning and validation.
74
+ - Preserve original source links and enough metadata for the user to revisit them.
75
+
76
+ 4. Save or return the result according to the user's environment:
77
+ - If the user names a destination, write there.
78
+ - If the environment has a notes app, knowledge base, or file system convention, follow that convention.
79
+ - If no destination is specified, return the artifact in Markdown and suggest a clear filename.
80
+
81
+ 5. Report:
82
+ - What was processed
83
+ - Where it was saved, if applicable
84
+ - Any validation gaps or follow-up questions
85
+
86
+ ## Quick Teaching Output
87
+
88
+ Use this structure unless the user asks for another format:
89
+
90
+ ```markdown
91
+ # [Resource Title] - Teaching Notes
92
+
93
+ ## Source
94
+ - [Original link or citation]
95
+
96
+ ## Why This Matters
97
+ -
98
+
99
+ ## Prerequisites
100
+ -
101
+
102
+ ## Chapter 1 - [Concept]
103
+ ...
104
+
105
+ ## Chapter 2 - [Concept]
106
+ ...
107
+
108
+ ## Subtle Points
109
+ -
110
+
111
+ ## Examples
112
+ -
113
+
114
+ ## What To Remember
115
+ -
116
+
117
+ ## Follow-Up Questions
118
+ -
119
+
120
+ ## Validation Gaps
121
+ -
122
+ ```
123
+
124
+ Quality bar:
125
+
126
+ - Build from first principles.
127
+ - Prefer chapter-style explanation over bullet-only summaries.
128
+ - Explain jargon before relying on it.
129
+ - Use examples for subtle or abstract ideas.
130
+ - Separate what the source claims from what the agent infers.
131
+ - Include "Validation Gaps" for inaccessible pages, unclear claims, stale information, missing context, or uncertain interpretation.
132
+
133
+ ## Interactive Tutor Output
134
+
135
+ Use this structure for the first response or saved checkpoint:
136
+
137
+ ```markdown
138
+ # [Topic] - Interactive Tutor
139
+
140
+ ## Resources
141
+ - [Link or citation]
142
+
143
+ ## Assumed Baseline
144
+ -
145
+
146
+ ## Learning Path
147
+ 1. [Step]
148
+ 2. [Step]
149
+ 3. [Step]
150
+
151
+ ## Current Step
152
+ ### Step 1 - [Concept]
153
+ ...
154
+
155
+ ## Validation Questions
156
+ 1. ...
157
+ 2. ...
158
+ 3. ...
159
+
160
+ ## Continue When
161
+ Reply with your explanation of the current step. I will check it, correct misunderstandings, and only then move to the next step.
162
+
163
+ ## Session Log
164
+ - [Date/time if available] Started at Step 1.
165
+
166
+ ## Validation Gaps
167
+ -
168
+ ```
169
+
170
+ When continuing an interactive tutor:
171
+
172
+ - Read the previous checkpoint if available.
173
+ - Evaluate the user's answer against the current step.
174
+ - Correct misunderstandings directly and kindly.
175
+ - If understanding is sufficient, advance one step.
176
+ - If not, reteach the same step with a different example.
177
+ - Keep a concise session log of what was understood and what remains unclear.
178
+
179
+ ## Safety And Source Handling
180
+
181
+ - Do not claim to have read inaccessible content.
182
+ - Do not hide uncertainty. Mark gaps explicitly.
183
+ - Do not treat generated explanations as source-grounded facts unless they are supported by the source or reliable background knowledge.
184
+ - For medical, legal, financial, safety-critical, or current-events content, verify against authoritative current sources before presenting advice or conclusions.
185
+ - For copyrighted material, summarize and explain rather than reproducing long passages.
186
+
187
+ ## Good Artifact Traits
188
+
189
+ - The result should feel easier to start than the original source.
190
+ - The explanation should meet the user at their stated level.
191
+ - The output should preserve enough links, context, and questions to support later follow-up.
192
+ - The artifact should be useful even if read days or weeks after capture.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Async Learning Teacher"
3
+ short_description: "Turn saved resources into teaching notes"
4
+ default_prompt: "Use $async-learning-teacher to turn this link into an approachable teaching artifact for later study."
@@ -0,0 +1,27 @@
1
+ # Code Standards
2
+
3
+ <p align="center">
4
+ <img src="../../assets/skill-cards/code-standards.svg" alt="code-standards skill card" width="100%">
5
+ </p>
6
+
7
+ Apply a disciplined workflow to code changes: orient, establish a baseline,
8
+ make the smallest change, test, verify, and self-review.
9
+
10
+ ## Install
11
+
12
+ Install this skill for your user account:
13
+
14
+ ```bash
15
+ npx @tamng0905/builder-essential-skills --skill code-standards
16
+ ```
17
+
18
+ Install it into the current repository instead:
19
+
20
+ ```bash
21
+ npx @tamng0905/builder-essential-skills --skill code-standards --project
22
+ ```
23
+
24
+ Restart Claude Code or Codex, then ask it to implement, fix, or refactor code
25
+ with the repository's checks kept green.
26
+
27
+ See the full workflow in [SKILL.md](SKILL.md).
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: code-standards
3
+ description: >-
4
+ Apply a disciplined engineering workflow to any code change. Use whenever
5
+ implementing a feature, fixing a bug, or refactoring — before writing code,
6
+ not after. Walks orient → baseline → smallest change → test → verify →
7
+ self-review, and enforces language-agnostic hard gates (don't mass-reformat,
8
+ keep the linter and type-checker clean, keep the build and tests green, make
9
+ interface changes additive, protect security invariants).
10
+ compatibility: claude-code
11
+ ---
12
+
13
+ # Code standards — the change workflow
14
+
15
+ You are making a code change. This skill is the execution order; it is
16
+ stack-agnostic. Adapt every command to the project's actual toolchain: read the
17
+ project's own docs (README, CONTRIBUTING, `AGENTS.md`/`CLAUDE.md`, a Makefile or
18
+ package scripts) once to learn its build, test, lint, and format commands before
19
+ you start.
20
+
21
+ ## Steps
22
+
23
+ 1. **Orient.** Read any project lessons/gotchas file (e.g. `tasks/lessons.md`) and obey it.
24
+ Find and read the one doc for the subsystem you're changing, not the whole tree.
25
+ 2. **Plan if non-trivial** (3+ steps or an architectural choice): short plan in `tasks/todo.md` —
26
+ files touched, tests to add, risks. Going sideways → stop and re-plan.
27
+ 3. **Baseline:** get the project's build + test command green *before* touching anything. A
28
+ pre-existing red is the first task; never build on top of a broken baseline.
29
+ 4. **Implement** the smallest root-cause change. Hand-match the surrounding style.
30
+ **Don't run a mass auto-formatter** on files you touch; it buries your real diff in noise.
31
+ 5. **Test:** new behavior gets a test that fails without the change; security gates get
32
+ negative-assertion tests (wrong token → denied, state unchanged, no data leak).
33
+ 6. **Verify:** run the full check suite (build + lint + type-check + tests) until green
34
+ before you call it "done".
35
+ 7. **Self-review** your own diff as if it were someone else's PR (or invoke a review
36
+ skill). Fix findings before presenting.
37
+ 8. **Close out:** update docs in the same change; append to a lessons file if you were
38
+ corrected or surprised; write a conventional commit message (`feat|fix|docs(scope): …`).
39
+
40
+ ## Tripwires — stop and re-check the project's guidelines when you're about to…
41
+
42
+ - change a public or shared interface (API, wire format, schema) → check every caller; prefer additive changes
43
+ - add a dependency → weigh transitive weight and licenses, and whether the stdlib already covers it
44
+ - touch auth, tokens, or permissions → audit every writer and reader path, add negative tests
45
+ - write a secret to disk → use the platform's atomic create-private API, never write-then-chmod
46
+ - hold a lock across an `await`/blocking call, or read env inside logic → extract a pure decision function
47
+
48
+ ## No-progress guard
49
+
50
+ The same failure surviving two fix attempts means stop: write the finding to your lessons
51
+ file, mark the item `[BLOCKED]`, and surface it. Don't thrash.
@@ -0,0 +1,29 @@
1
+ # Lead
2
+
3
+ <p align="center">
4
+ <img src="../../assets/skill-cards/lead.svg" alt="lead skill card" width="100%">
5
+ </p>
6
+
7
+ Run the autonomous build factory: turn a goal into an approved plan, freeze
8
+ acceptance checks, dispatch parallel builders, review their work, and finish
9
+ with a single pull request.
10
+
11
+ ## Install
12
+
13
+ Install this skill and its supporting builder/reviewer agents for your user
14
+ account:
15
+
16
+ ```bash
17
+ npx @tamng0905/builder-essential-skills --skill lead
18
+ ```
19
+
20
+ Install them into the current repository instead:
21
+
22
+ ```bash
23
+ npx @tamng0905/builder-essential-skills --skill lead --project
24
+ ```
25
+
26
+ Restart Claude Code or Codex, then invoke it with `/lead` or ask for an
27
+ autonomous build run.
28
+
29
+ See the full workflow in [SKILL.md](SKILL.md).