PR Design Doc
OpenHands/OpenHands
For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…
Update Code-Spec - Capture Executable Contracts. An agent skill from jlifeng/JobPilot.
$ npx skills add jlifeng/JobPilot --skill update-spec -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jlifeng/JobPilot update-spec --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jlifeng/JobPilot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/update-spec .claude/skills/update-spec && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "update-spec" agent skill from https://github.com/jlifeng/JobPilot/tree/main/.agents/skills/update-spec into .claude/skills/update-spec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-spec", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jlifeng/JobPilot/tree/main/.agents/skills/update-specType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jlifeng/JobPilot --skill update-spec -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jlifeng/JobPilot update-spec --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jlifeng/JobPilot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/update-spec .agents/skills/update-spec && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "update-spec" agent skill from https://github.com/jlifeng/JobPilot/tree/main/.agents/skills/update-spec into .agents/skills/update-spec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-spec", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jlifeng/JobPilot --skill update-spec -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jlifeng/JobPilot update-spec --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jlifeng/JobPilot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/update-spec .cursor/skills/update-spec && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "update-spec" agent skill from https://github.com/jlifeng/JobPilot/tree/main/.agents/skills/update-spec into .cursor/skills/update-spec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-spec", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jlifeng/JobPilot.git --path .agents/skills/update-spec--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jlifeng/JobPilot --skill update-spec -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jlifeng/JobPilot update-spec --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jlifeng/JobPilot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/update-spec .gemini/skills/update-spec && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "update-spec" agent skill from https://github.com/jlifeng/JobPilot/tree/main/.agents/skills/update-spec into .gemini/skills/update-spec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-spec", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jlifeng/JobPilot update-specInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jlifeng/JobPilot --skill update-spec -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jlifeng/JobPilot.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/update-spec .github/skills/update-spec && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "update-spec" agent skill from https://github.com/jlifeng/JobPilot/tree/main/.agents/skills/update-spec into .github/skills/update-spec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-spec", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jlifeng/JobPilot --skill update-spec -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jlifeng/JobPilot update-spec --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jlifeng/JobPilot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/update-spec .opencode/skills/update-spec && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "update-spec" agent skill from https://github.com/jlifeng/JobPilot/tree/main/.agents/skills/update-spec into .opencode/skills/update-spec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-spec", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
update-specUpdate Code-Spec - Capture Executable Contracts. An agent skill from jlifeng/JobPilot.
Update Spec is an agent skill from jlifeng/JobPilot. Update Code-Spec - Capture Executable Contracts
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Architecture decision records. The repository describes itself as: JobPilot — Zero-Deployment AI Resume Builder, JD Matcher & Mock Interview Assistant JobPilot — 开箱即用的桌面端 AI 求职助手,支持简历优化、岗位匹配与模拟面试. The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7f33542. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown and bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Update Spec loads about 2.4k tokens when it runs. Until then it costs about 15 tokens; SKILL.md has 859 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jlifeng/JobPilot at commit 7f33542, republished under its Apache-2.0 licence (© jlifeng). 859 words, ~2,356 tokens.
.claude/skills/update-spec/SKILL.md (or your agent's skills folder).When you learn something valuable (from debugging, implementing, or discussion), use this skill to update the relevant code-spec documents.
Timing: After completing a task, fixing a bug, or discovering a new pattern
In this project, "spec" for implementation work means code-spec:
If the change touches infra or cross-layer contracts, code-spec depth is mandatory.
Required sections for infra/cross-layer specs:
| Trigger | Example | Target Spec |
|---|---|---|
| Implemented a feature | Added template download with giget | Relevant backend/ or frontend/ file |
| Made a design decision | Used type field + mapping table for extensibility | Relevant code-spec + "Design Decisions" section |
| Fixed a bug | Found a subtle issue with error handling | backend/error-handling.md |
| Discovered a pattern | Found a better way to structure code | Relevant backend/ or frontend/ file |
| Hit a gotcha | Learned that X must be done before Y | Relevant code-spec + "Common Mistakes" section |
| Established a convention | Team agreed on naming pattern | quality-guidelines.md |
| New thinking trigger | "Don't forget to check X before doing Y" | guides/*.md (as a checklist item, not detailed rules) |
Key Insight: Code-spec updates are NOT just for problems. Every feature implementation contains design decisions and contracts that future AI/developers need to execute safely.
.trellis/spec/
├── backend/ # Backend coding standards
│ ├── index.md # Overview and links
│ └── *.md # Topic-specific guidelines
├── frontend/ # Frontend coding standards
│ ├── index.md # Overview and links
│ └── *.md # Topic-specific guidelines
└── guides/ # Thinking checklists (NOT coding specs!)
├── index.md # Guide index
└── *.md # Topic-specific guides| Type | Location | Purpose | Content Style |
|---|---|---|---|
| Code-Spec | backend/*.md, frontend/*.md | Tell AI "how to implement safely" | Signatures, contracts, matrices, cases, test points |
| Guide | guides/*.md | Help AI "what to think about" | Checklists, questions, pointers to specs |
Decision Rule: Ask yourself:
backend/ or frontend/guides/Example:
| Learning | Wrong Location | Correct Location |
|---|---|---|
"Use reconfigure() not TextIOWrapper for Windows stdout" | ❌ guides/cross-platform-thinking-guide.md | ✅ backend/script-conventions.md |
| "Remember to check encoding when writing cross-platform code" | ❌ backend/script-conventions.md | ✅ guides/cross-platform-thinking-guide.md |
Guides should be short checklists that point to specs, not duplicate the detailed rules.
Answer these questions:
| Type | Description | Action |
|---|---|---|
| Design Decision | Why we chose approach X over Y | Add to "Design Decisions" section |
| Project Convention | How we do X in this project | Add to relevant section with examples |
| New Pattern | A reusable approach discovered | Add to "Patterns" section |
| Forbidden Pattern | Something that causes problems | Add to "Anti-patterns" or "Don't" section |
| Common Mistake | Easy-to-make error | Add to "Common Mistakes" section |
| Convention | Agreed-upon standard | Add to relevant section |
| Gotcha | Non-obvious behavior | Add warning callout |
Before editing, read the current code-spec to:
cat .trellis/spec/<category>/<file>.mdFollow these principles:
If you added a new section or the code-spec status changed, update the category's index.md.
## Scenario: <name>
### 1. Scope / Trigger
- Trigger: <why this requires code-spec depth>
### 2. Signatures
### 3. Contracts
### 4. Validation & Error Matrix
### 5. Good/Base/Bad Cases
### 6. Tests Required
### 7. Wrong vs Correct
#### Wrong
...
#### Correct
...### Design Decision: [Decision Name]
**Context**: What problem were we solving?
**Options Considered**:
1. Option A - brief description
2. Option B - brief description
**Decision**: We chose Option X because...
**Example**:
\`\`\`typescript
// How it's implemented
code example
\`\`\`
**Extensibility**: How to extend this in the future...### Convention: [Convention Name]
**What**: Brief description of the convention.
**Why**: Why we do it this way in this project.
**Example**:
\`\`\`typescript
// How to follow this convention
code example
\`\`\`
**Related**: Links to related conventions or specs.### Pattern Name
**Problem**: What problem does this solve?
**Solution**: Brief description of the approach.
**Example**:
\`\`\`
// Good
code example
// Bad
code example
\`\`\`
**Why**: Explanation of why this works better.### Don't: Pattern Name
**Problem**:
\`\`\`
// Don't do this
bad code example
\`\`\`
**Why it's bad**: Explanation of the issue.
**Instead**:
\`\`\`
// Do this instead
good code example
\`\`\`### Common Mistake: Description
**Symptom**: What goes wrong
**Cause**: Why this happens
**Fix**: How to correct it
**Prevention**: How to avoid it in the future> **Warning**: Brief description of the non-obvious behavior.
>
> Details about when this happens and how to handle it.If you're unsure what to update, answer these prompts:
What did you just finish?
What did you learn or decide?
Would future AI/developers need to know this?
Which area does it relate to?
Before finishing your code-spec update:
Development Flow:
Learn something → $update-spec → Knowledge captured
↑ ↓
$break-loop ←──────────────────── Future sessions benefit
(deep bug analysis)$break-loop - Analyzes bugs deeply, often reveals spec updates needed$update-spec - Actually makes the updates (this skill)$finish-work - Reminds you to check if specs need updatesCode-specs are living documents. Every debugging session, every "aha moment" is an opportunity to make the implementation contract clearer.
The goal is institutional memory:
© jlifeng, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/update-spec of jlifeng/JobPilot.
Open the folder on GitHubat commit 7f33542
Update Spec next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Update Spec this skilljlifeng/JobPilot | 140 | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| PR Design DocOpenHands/OpenHands | 90k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Cto AdvisorIbrahim-3d/orchestrator-supaconductor | 381 | 4 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Architecture DecisionDonchitos/Claude-Code-Game-Studios | 26k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Improve Codebase Architectureywwynm/EverythingDone | 144 | 15 repos | ~1.3k | Automated safety check: Pass | GPL-3.0 | |
| Domain Modelingbrim-borium/spotify_sdk | 166 | 5 repos | ~806 | Automated safety check: Pass | Apache-2.0 |
OpenHands/OpenHands
For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…
Ibrahim-3d/orchestrator-supaconductor
Technical leadership guidance for engineering teams, architecture decisions, and technology strategy.
Donchitos/Claude-Code-Game-Studios
Create an ADR documenting a technical decision: context, alternatives considered, consequences.
ywwynm/EverythingDone
Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/.
brim-borium/spotify_sdk
Build and sharpen a project's domain model. An agent skill from brim-borium/spotify_sdk.
SpillwaveSolutions/design-doc-mermaid
Create Mermaid diagrams (flowchart, sequence, class, ER, state, C4, architecture) from text or source code.
jlifeng/JobPilot
Brainstorm - Requirements Discovery (AI Coding Enhanced). An agent skill from jlifeng/JobPilot.
jlifeng/JobPilot
Break the Loop - Deep Bug Analysis
jlifeng/JobPilot
Finish Work - Pre-Commit Checklist
jlifeng/JobPilot
Start Session
Categories
Update Code-Spec - Capture Executable Contracts. An agent skill from jlifeng/JobPilot. Update Spec is an agent skill from jlifeng/JobPilot.
Update Spec fits situations like: tasks that involve Architecture decision records.
Run `npx skills add jlifeng/JobPilot --skill update-spec -a claude-code`. Or copy the skill folder (.agents/skills/update-spec in jlifeng/JobPilot) into .claude/skills/update-spec in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jlifeng/JobPilot --skill update-spec -a codex`. Or copy the skill folder (.agents/skills/update-spec in jlifeng/JobPilot) into .agents/skills/update-spec in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jlifeng/JobPilot --skill update-spec -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-spec, .gemini/skills/update-spec, .github/skills/update-spec and .opencode/skills/update-spec in your project.
SKILL.md names no scripts, command-line tools or credentials: Update Spec is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Update Spec is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Update Spec: PR Design Doc (OpenHands/OpenHands, 90k stars), Cto Advisor (Ibrahim-3d/orchestrator-supaconductor, 381 stars), Architecture Decision (Donchitos/Claude-Code-Game-Studios, 26k stars) and Improve Codebase Architecture (ywwynm/EverythingDone, 144 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jlifeng (a GitHub user) maintains it in jlifeng/JobPilot, which has 140 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 8, 2026.
Source: jlifeng/JobPilot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.