@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.
- package/.claude/agents/lead-builder.md +55 -0
- package/.claude/agents/lead-reviewer.md +39 -0
- package/README.md +276 -0
- package/assets/readme-hero.png +0 -0
- package/assets/skill-cards/async-learning-teacher.svg +7 -0
- package/assets/skill-cards/code-standards.svg +7 -0
- package/assets/skill-cards/lead-research.svg +7 -0
- package/assets/skill-cards/lead.svg +7 -0
- package/assets/skill-cards/orwell-writing.svg +7 -0
- package/assets/skill-cards/session-profiler.svg +7 -0
- package/assets/skill-cards/validate-market.svg +7 -0
- package/assets/skill-cards/write-blog.svg +7 -0
- package/bin/builder-essential-skills.js +134 -0
- package/install.ps1 +58 -0
- package/install.sh +63 -0
- package/package.json +24 -0
- package/skills/async-learning-teacher/README.md +50 -0
- package/skills/async-learning-teacher/SKILL.md +192 -0
- package/skills/async-learning-teacher/agents/openai.yaml +4 -0
- package/skills/code-standards/README.md +27 -0
- package/skills/code-standards/SKILL.md +51 -0
- package/skills/lead/README.md +29 -0
- package/skills/lead/SKILL.md +222 -0
- package/skills/lead/config.py +359 -0
- package/skills/lead/dispatch.md +342 -0
- package/skills/lead/loop.md +103 -0
- package/skills/lead/models.json +34 -0
- package/skills/lead/research.md +76 -0
- package/skills/lead/status.ps1 +114 -0
- package/skills/lead/status.sh +110 -0
- package/skills/lead/watchdog.ps1 +90 -0
- package/skills/lead/watchdog.sh +88 -0
- package/skills/lead-research/README.md +27 -0
- package/skills/lead-research/SKILL.md +157 -0
- package/skills/lead-research/tactics.md +150 -0
- package/skills/orwell-writing/README.md +27 -0
- package/skills/orwell-writing/SKILL.md +44 -0
- package/skills/orwell-writing/agents/openai.yaml +4 -0
- package/skills/session-profiler/README.md +25 -0
- package/skills/session-profiler/SKILL.md +103 -0
- package/skills/session-profiler/agents/openai.yaml +4 -0
- package/skills/session-profiler/scripts/requirements.txt +2 -0
- package/skills/session-profiler/scripts/session_profiler/__init__.py +5 -0
- package/skills/session-profiler/scripts/session_profiler/analyses.py +246 -0
- package/skills/session-profiler/scripts/session_profiler/cli.py +77 -0
- package/skills/session-profiler/scripts/session_profiler/dataset.py +369 -0
- package/skills/session-profiler/scripts/session_profiler/discover.py +191 -0
- package/skills/session-profiler/scripts/session_profiler/toc.py +74 -0
- package/skills/session-profiler/scripts/session_profiler/trace.py +146 -0
- package/skills/session-profiler/scripts/sp +20 -0
- package/skills/session-profiler/scripts/tests/codex_home/sessions/2026/01/01/rollout-child.jsonl +7 -0
- package/skills/session-profiler/scripts/tests/codex_home/sessions/2026/01/01/rollout-root.jsonl +10 -0
- package/skills/session-profiler/scripts/tests/fixture/main/subagents/agent-abc.jsonl +2 -0
- package/skills/session-profiler/scripts/tests/fixture/main/subagents/agent-abc.meta.json +1 -0
- package/skills/session-profiler/scripts/tests/fixture/main.jsonl +7 -0
- package/skills/session-profiler/scripts/tests/test_fixture.py +58 -0
- package/skills/validate-market/README.md +27 -0
- package/skills/validate-market/SKILL.md +202 -0
- package/skills/write-blog/README.md +27 -0
- package/skills/write-blog/SKILL.md +142 -0
- package/skills/write-blog/check.sh +52 -0
- package/skills/write-blog/reference/angles.md +51 -0
- package/skills/write-blog/reference/craft.md +94 -0
- package/skills/write-blog/reference/seo.md +116 -0
- package/skills/write-blog/reference/voice.md +64 -0
- 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,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).
|