start-work
Skill73 starsChanged 5 days agoApache-2.0View on GitHub
Prepare to work on a GitHub issue or RFC. Use when the user says /start-work, asks to start an issue, begin an RFC implementation, or pick up a task. Creates the branch, gathers context, and checks learnings.
- Deletes or force-pushes
17 other projects use a version of this.
Adopted by
Most recently taken up by
- serionist/claude-session-restoretheir own version, first seen Nov 8, 2026
- timamikh/very-ai-product-loopstheir own version, first seen Nov 8, 2026
- elpiarthera/vantage-startertheir own version, first seen Nov 1, 2026
- spalladino/claude-skillstheir own version, first seen Nov 1, 2026
- Spaghetticoders/developer-skillstheir own version, first seen Nov 1, 2026
- ambroselittle/agent-skillstheir own version, first seen Oct 30, 2026
Other versions17 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 17
- liferay/liferay-portal★ 2.3ksame name
- zephyrwang6/myskill★ 339same name
- notum-cz/strapi-next-monorepo-starter★ 316same name
- SpaceZephyr/allSkills★ 14same name
- timamikh/very-ai-product-loops★ 8same name
- vantageos-agency/vantage-peers★ 4same name
- UtsavBalar1231/oh-my-claudeagent★ 3same name
- dmzoneill/skills★ 2same name
- wjgoarxiv/litopencode★ 2same name
- avantmedialtd/skills★ 1same name
7 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository30 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- add-learningSkill
- bump-rfcSkill
- closeoutSkill
- create-github-issueSkill
- create-planSkill
- create-pr-descriptionSkill
- fixSkill
- flag-compiler-bugSkill
- fleet-auditSkill
- hello-worldSkill
- loopSkill
- orchestrate-parallel-workSkill
- ralph-loopSkill
- review-and-fixSkill
- review-architectureSkill
- review-code-smellsSkill
- review-docs-claimsSkill
- review-incan-source-qualitySkill
- review-orchestrateSkill
- review-rfcSkill
- review-rust-proseSkill
- review-scopeSkill
- reviewSkill
- review-test-styleSkill
- testSkill
- write-commit-messageSkill
- write-rfcSkill
- yeet-prSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
29 rules. 0 are common, 15 are distinctive, and 14 are very specific to this project.
0
Common
Most of the 13 edited versions we read keep these.
15
Distinctive
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
If none is provided, ask the user what they want to work on.
- Very specific: line 23
Commit your own work: Use the repo's message convention (chore|bugfix|feature - <issue_id(s)> <description>), push the branch, and open the …
- Very specific: line 51
Read the RFC file: workspaces/docs-site/docs/RFCs/<NNN>_*.md
- Very specific: line 52
Look for a linked GitHub issue in the Issue: header field.
- Very specific: line 53
If an issue exists, also fetch it with gh issue view.
- Very specific: line 57
Search for a matching open issue: gh issue list --repo dannys-code-corner/incan --search "<description>" --state open
- Distinctive: line 58
If a match is found, confirm with the user.
- Distinctive: line 97
If the branch already exists locally or on the remote, ask the user whether to:
- Very specific: line 99
Check out the existing branch (git checkout <branch-name>)
- Distinctive: line 100
Delete and recreate it from main
- Very specific: line 104
Read .agents/learnings.md and check whether any section is relevant to the task.
- Very specific: line 106
If the task involves lowering, emission, or codegen regressions -> read General pipeline pitfalls and Testing strategy
- Very specific: line 107
If the task involves Rust interop, import rust.*, rusttype, or extern functions -> read RFC 041 (first-class Rust interop) implementation …
- Very specific: line 108
If the task involves stdlib, soft keywords, or std.* imports -> read Stdlib and registry patterns
- Very specific: line 109
If the task involves imports, parser bracket handling, warnings, or formatter -> read Parser and lexer patterns and Wiring: CLI and LSP
- Very specific: line 110
If the task involves docs, release notes, or RFC movement/renames -> read Docs and RFC tooling
- Distinctive: line 112
If a relevant section exists, summarize the key takeaways for the user.
- Very specific: line 116
If the resolved issue belongs to the 0.6 Release milestone, read the current ledger and update format on #1074.
- Distinctive: line 123
Do not edit another contributor's ledger comment.
- Distinctive: line 125
When work becomes blocked, ready for integration, materially rescaled, or complete, publish the corresponding follow-up update on #1074.
- Very specific: line 129
If the task clearly decomposes into independent slices and the user explicitly wants delegation or parallel work, stop after gathering …
- Distinctive: line 131
Do not improvise ad hoc multi-agent coordination inside this skill.
- Distinctive: line 135
If the issue, RFC, or task touches milestone scope, release scope, compiler boundaries, package imports, vocab, formatter, test runner, …
- Distinctive: line 140
import, reexport/facade, package-consumer, dependency-owned type, test-batch, vocab, formatter, generated-Rust, or Rust-metadata boundaries …
- Distinctive: line 149
If the task references an RFC:
- Distinctive: line 151
Read the RFC document
- Distinctive: line 152
Check its status (Draft / Planned / In Progress / Done)
- Distinctive: line 153
If the RFC has a Progress Checklist, summarize what's done and what remains
- Distinctive: line 183
Branch already exists with divergent history: Always ask before overwriting.
“Common” is measured: kept by at least 6 in 10 of the 13 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Start Work — Incan Project
Input
The user provides one of:
- A GitHub issue number (e.g.
#165,165) - A GitHub issue URL (e.g.
https://github.com/dannys-code-corner/incan/issues/165) - An RFC number (e.g.
RFC 031) - A free-text description of the task
If none is provided, ask the user what they want to work on.
Git commits
Commit your own work. Use the repo's message convention (chore|bugfix|feature - <issue_id(s)> <description>), push the branch, and open the PR when the work is ready. Do not leave finished work uncommitted waiting for the maintainer.
Still off-limits on your own initiative:
- anything that overwrites or deletes uncommitted work —
git checkout -- <path>,git restore <path>,git clean,git reset --hard,stash drop - force-pushing a shared branch, or any branch whose PR has already merged
git rebaseof a branch that is already pushed — sync it with a merge commit instead, so ancestry survives and no force-push is needed
Two habits keep pushing safe. Re-check a PR's state immediately before pushing to its branch: a squash-merge silently strands anything pushed afterwards. And prove work reached the integration branch by content (git show origin/<dev-line>:<file> | grep <symbol>), never by PR status — a stacked PR reports MERGED once its own base absorbs it, which says nothing about the dev line.
This policy applies whenever this skill is used (and is the default for Incan work even without /start-work).
Workflow
Step 1: Fetch issue/RFC context
If an issue number or URL was given:
gh issue view <NNN> --repo dannys-code-corner/incanExtract: title, labels, body, linked RFC (if any).
If an RFC number was given:
- Read the RFC file:
workspaces/docs-site/docs/RFCs/<NNN>_*.md - Look for a linked GitHub issue in the
Issue:header field. - If an issue exists, also fetch it with
gh issue view.
If a free-text description was given:
- Search for a matching open issue:
gh issue list --repo dannys-code-corner/incan --search "<description>" --state open - If a match is found, confirm with the user. If not, proceed without an issue link and note that one should be created.
Step 2: Determine branch name
Construct the branch name using the convention: <type>/<issue>-<slug>
Type is determined by issue labels:
| Label | Type |
feature, RFC, enhancement | feature |
bug | bugfix |
| anything else (or no issue) | chore |
Issue is the GitHub issue number. If no issue exists, omit the number prefix.
Slug is derived from the issue title or RFC title:
- Lowercase
- Replace spaces and special characters with hyphens
- Truncate to ~50 characters at a word boundary
- For RFC implementations, prefer the pattern:
implement-rfc-<NNN>-<short-title>
Examples:
- Issue #165 "Implement RFC 031: Library System Phase 1" with label
feature->feature/165-implement-rfc-031-library-system-phase-1 - Issue #88 "Vocab drift guardrails" with label
chore->chore/88-vocab-drift-guardrails - Issue #42 "Parser crash on empty match" with label
bug->bugfix/42-parser-crash-on-empty-match
Step 3: Create and checkout the branch
# Ensure main is up to date
git fetch origin main
# Create branch from origin/main
git checkout -b <branch-name> origin/mainIf the branch already exists locally or on the remote, ask the user whether to:
- Check out the existing branch (
git checkout <branch-name>) - Delete and recreate it from main
Step 4: Check learnings
Read .agents/learnings.md and check whether any section is relevant to the task. Specifically:
- If the task involves lowering, emission, or codegen regressions -> read
General pipeline pitfallsandTesting strategy - If the task involves Rust interop,
import rust.*,rusttype, or extern functions -> readRFC 041 (first-class Rust interop) implementation notesandGeneric bounds and extern functions - If the task involves stdlib, soft keywords, or
std.*imports -> readStdlib and registry patterns - If the task involves imports, parser bracket handling, warnings, or formatter -> read
Parser and lexer patternsandWiring: CLI and LSP - If the task involves docs, release notes, or RFC movement/renames -> read
Docs and RFC tooling
If a relevant section exists, summarize the key takeaways for the user.
Step 4a: Record v0.6 ledger start
If the resolved issue belongs to the 0.6 Release milestone, read the current ledger and update format on #1074. Before the first production edit, publish an append-only Active ledger update naming:
- the owning issue and branch (or planned branch);
- the bounded scope and acceptance contract;
- known dependencies and blockers; and
- the first targeted verification command or evidence lane.
Do not edit another contributor's ledger comment. If the task does not authorize a GitHub write, show the exact update text to the maintainer and wait for publication before editing production code.
When work becomes blocked, ready for integration, materially rescaled, or complete, publish the corresponding follow-up update on #1074. Completion updates must name actual verification evidence; never infer it from a green legacy path or an unrun command.
Step 5: Check for parallel work opportunities
If the task clearly decomposes into independent slices and the user explicitly wants delegation or parallel work, stop after gathering context and hand off to orchestrate-parallel-work.
Do not improvise ad hoc multi-agent coordination inside this skill. This skill is for task setup, not swarm orchestration.
Step 6: Draft the initial acceptance contract
If the issue, RFC, or task touches milestone scope, release scope, compiler boundaries, package imports, vocab, formatter, test runner, generated Rust, Rust metadata, or downstream-facing behavior, draft the initial acceptance contract before proposing next steps.
The contract should name:
- direct/local behavior that must work,
- import, reexport/facade, package-consumer, dependency-owned type, test-batch, vocab, formatter, generated-Rust, or Rust-metadata boundaries that can observe the behavior,
- downstream acceptance lanes such as IncQL when relevant,
- docs/generated-reference/rustdoc/release-note gates,
- performance or progress-output expectations when relevant.
For simple local tasks, say acceptance contract: local only and why no boundary lane applies.
Step 7: Check for related RFCs
If the task references an RFC:
- Read the RFC document
- Check its status (Draft / Planned / In Progress / Done)
- If the RFC has a Progress Checklist, summarize what's done and what remains
Step 8: Report to the user
Provide a concise summary:
## Ready to work
**Branch**: `<branch-name>` (created from `origin/main`)
**Issue**: #<NNN> — <title>
**RFC**: RFC <NNN> — <title> (status: <status>)
**Relevant learnings**: <list or "none">
**Acceptance contract**: <boundary/downstream/doc/perf gates, or "local only" with reason>
### Context
<1-3 sentence summary of what the task involves>
### Next steps
<Suggested first actions based on the issue/RFC>
**Proposed commit message**: `<one line; include in this same summary for the maintainer to use when they commit>`Edge cases
- No GitHub CLI (
gh): Fall back to reading the RFC file directly. Note that the issue could not be fetched and ask the user for context. - Dirty working tree: uncommitted changes you did not make belong to the maintainer. Report them before switching branches and let them decide; never discard or revert them.
- Branch already exists with divergent history: Always ask before overwriting.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

