agentleFS
FirzusFirzus/agent-skills/skills/stack/work/SKILL.md

work

Skill4 starsChanged 20 days agoMITView on GitHub

Entry point of the stack. Use when the user runs /work with any development request (a feature, a fix, a change, a vague idea, a Linear issue, or a Linear project to start or continue) to take it from intent to a verified result ready to ship.

42 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use done, fix and 8 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • robzolkosSkill

    done

    Reset the working directory for the next task by ensuring no uncommitted changes exist, then switching to the main branch and pulling latest.

    Also in 3 projects that use this

  • Google CloudSkill

    fix

    Plan a remediation strategy after a test failure.

    Also in 4 projects that use this

  • AlexPEClubSkill

    refine

    Always use when the user wants to discuss an exsiting feature or specification. Open an existing feature spec to improve, extend, or fundamentally challenge it. Pass the feature ID as argument (e.g. /refine PROJ-2).

    Also in 3 projects that use this

  • MicrosoftSkill

    merge

    Merge changes from the topic branch to the merge base branch. Use when the user wants to merge their session's work back to the base branch.

    Also in 3 projects that use this

  • Microsoft AzureSkill

    test

    Also in 6 projects that use this

  • GitHubSkill

    refactor

    Surgical code refactoring to improve maintainability without changing behavior. Covers extracting functions, renaming variables, breaking down god functions, improving type safety, eliminating code smells, and applying design patterns. Less drastic than repo-rebuilder; use for gradual improvements.

    Also in 5 projects that use this

The file

We split this skill into the rules it gives an agent

11 rules. 0 are common, 9 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 37 edited versions we read keep these.

  • 9

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Look up facts, ask for decisions: Read the code, tests, history, Linear, and docs before asking anything.

    line 21
  2. Distinctive:

    Linear holds the work: Every Small change is a Linear issue and every Project a Linear project, written so that any session can continue …

    line 31
  3. Distinctive:

    Read the request, the relevant code and tests, the project instructions, and the domain context the request touches, following context.

    line 51
  4. Very specific:

    When decisions the user owns are open, read ../interview/SKILL.md and follow it.

    line 103
  5. Distinctive:

    Only an explicit yes to the latest version is agreement.

    line 118
  6. Distinctive:

    Write a focused test at a boundary a caller uses.

    line 140
  7. Distinctive:

    Run it and read the failure: it must show the missing behavior, not a broken setup.

    line 141
  8. Distinctive:

    When no such boundary exists, say why and use the closest real evidence: running the program, a script, or a measurement.

    line 145
  9. Very specific:

    When the session must stop before the unit is done, commit the work in progress on its branch as chore(wip): <next step>, with what is …

    line 163
  10. Distinctive:

    Run the focused checks and the project's required checks.

    line 170
  11. Distinctive:

    After a merge, confirm the issue reached Done.

    line 207

“Common” is measured: kept by at least 6 in 10 of the 37 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Work from request to shipped change

You own the work from the user's request to a result they can check and choose to ship. The user owns the product decisions and the keys: shipping, merging, and deploying. Everything between is your responsibility.

The stack

These opinions define the stack. Apply them with judgment; the stages below describe how they usually play out.

  1. Understand before building. Restate the outcome and how both of you will know it is done before changing code. Most wasted work comes from building the wrong thing confidently.
  2. Look up facts, ask for decisions. Read the code, tests, history, Linear, and docs before asking anything. Ask the user only for choices that change what gets built and that they own: product behavior, scope, cost, or an irreversible step.
  3. Ceremony matches the work. Size the work and spend the effort it deserves: a typo needs no issue, a feature needs one, a large effort needs a project.
  4. No agreement, no code. Build only what the user agreed to. A Quick request and a ready Linear issue are their own agreement; otherwise agree first.
  5. Linear holds the work. Every Small change is a Linear issue and every Project a Linear project, written so that any session can continue from it alone.
  6. One unit per session. A unit is what one session can finish, check with a test it can run (or a check named for the user), and hand over as one change the user can review in one sitting, a few hundred changed lines without tests and generated files. A session, one conversation, does one thing: a unit (a task, a fix, an investigation, an experiment, or an interview), the shaping of a project, or one take-stock. It stops at its handoff and the next starts from Linear, so each starts with a fresh context and the user judges one result at a time. Larger work becomes several units, planned only as far as current knowledge allows.
  7. Tests first. Each behavior starts with a failing test at a boundary a caller uses, wherever such a boundary exists.
  8. Evidence over claims. A change is done when its checks ran and the user can see the result working. Behavior changes get an independent review.
  9. Scope stays put. Work discovered along the way is captured, not absorbed.

1. Understand and route

Read the request, the relevant code and tests, the project instructions, and the domain context the request touches, following context. Then restate, in the user's terms, what will change for whom and the check that will show it works. A request that needs no change (a question about the code, a behavior that already works) gets its answer and stops here.

A Linear issue, a Linear project, or a work branch from an earlier session means a continuation: see Resume.

Some requests need a specialist skill first. Read its SKILL.md completely, use it for the part named below, then come back here with its result:

The request needsReadUse it to
The cause of a bug, failure, or regression../debug/SKILL.mdReproduce and find the cause; stop at its "Ready to fix" and bring back the cause and the proposed fix
A substantial investigation across many outside sources../research/SKILL.mdAnswer the question once it is agreed as step 3 describes; announce the planned delegation without estimating its time or tokens
A choice that only an observed experiment can settle../prototype/SKILL.mdBuild and show the experiment once it is agreed as step 3 describes

debug serves the fix of the same session, and interview the decisions of its unit. A delegated investigation or an experiment is a unit of its own: the session's unit when the request asks for it, otherwise a separate unit, which makes the work a Project. A single fact from outside the repository (a version, an API detail) needs a direct lookup, not research. When a skill this stack names is not installed next to this one, say so and treat its step as pending instead of improvising it.

2. Size the work

Tell the user the size in one sentence with its reason. They can override it.

SizeWhenIn LinearWhat follows
QuickThe request says everything that matters, the change is small and easy to undo, and no decision is openNothingBuild, verify, show
SmallOne unit: fits one session, one check, and one reviewable changeOne issue: Task or Bug, or the Research or Prototype the request asks forSettle decisions, agree in one message, build, verify, show
ProjectMore than one unit, or open questions that this session cannot settle before the work can be detailedOne projectFollow project

A bug fix is Quick when its correct behavior is evident and the fix is local; a fix that changes what users can do, pay, or keep is at least Small. Work that starts from an existing Linear issue is at least Small, so the issue follows it.

Small and Project need Linear: check that it responds before anything else, as linear describes, and stop if it does not.

3. Settle decisions and agree

A ready issue is already agreed: it is in Todo or In Progress, its text follows the format of linear, it leaves no decision open, and its work fits one unit. Tell the user in one short message what you will do and the Linear updates you will make, then start the work without waiting. Otherwise, settle and agree as below.

When decisions the user owns are open, read ../interview/SKILL.md and follow it. It returns accepted decisions; do not reopen them.

Then ask for agreement in one message:

  • Small: in a few lines, the outcome and the check that will show it, the decisions taken (yours with their reason), any step that departs from this stack's usual course, and the Linear updates you will make along the way. The issue you create or update holds the full text in the format of linear, keeping an existing issue's text under its own heading; show that text only when the user asks for it.
  • Project: the project and its first issues, as project describes.

Only an explicit yes to the latest version is agreement; silence or a yes to an earlier version is not. Agreement, or a Quick request itself, authorizes, within its scope: a work branch, local commits on it, file edits, dependency installs it names, local runs of the project, the Linear writes it lists, and the push of an agreed prototype's branch. It does not authorize pushing other branches, other external writes, merging, or deploying.

Waiting: the agreement, or a decision it depends on, is unanswered.

4. Build test-first

Record the starting commit and any local changes that already existed; they stay out of this change. Work on a branch, never on the default branch, named as in ship, and move the issue, if any, to In Progress. A fix found through debug also follows its step 3: regression test first, temporary probes removed, measurements compared under the same conditions. Without Git in the project, explain what Git gives the user (every step can be undone) and ask before initializing it.

For each behavior, including text the user sees (a Quick text correction only needs the corrected text shown):

  1. Write a focused test at a boundary a caller uses.
  2. Run it and read the failure: it must show the missing behavior, not a broken setup.
  3. Make the change that passes it, run it again, and refactor while it passes.

When no such boundary exists, say why and use the closest real evidence: running the program, a script, or a measurement. Refactoring keeps a passing baseline. Documentation needs its claims and links checked, not a test. Commit at meaningful steps so any step can be undone.

While building:

  • A decision the user owns pauses the work that depends on it: settle it as in step 3 and continue the rest.
  • A need for a delegated investigation or an experiment is a separate unit, as step 1 states: stop the part that depends on it and propose the change of size.
  • A change the agreed outcome cannot do without needs a new agreement; tell the user what changed. Work that outgrows one unit becomes a Project.
  • Anything else you notice is captured as linear describes, never part of this change.

When the session must stop before the unit is done, commit the work in progress on its branch as chore(wip): <next step>, with what is verified, the exact next step, and any Linear update not yet made in the commit body, and copy that note to the issue when Linear is reachable.

5. Verify and review

  1. Run the focused checks and the project's required checks.
  2. Exercise the result the way the user will: run the app, call the command, open the page. Use a copy of the data whenever the run would write to it, and cause no real external effect (an email sent, a payment, a call to a paid service) without the user's permission. Keep a server you start reachable from this machine only unless the user agrees to open it to their network, and stop it once the user no longer needs it. Note what you could not exercise.
  3. For any change to code behavior, read ../code-review/SKILL.md and run its independent review. Verify each finding before acting on it, correct the confirmed ones test-first, and have the corrections re-reviewed. Stop a correction path after two attempts without new evidence and report it.

Changes to text, documentation, or a configuration value may skip the review, unless they touch authentication, permissions, data, or money; say so in the report. Without subagents, run the review yourself, one axis at a time, and report that it was not independent; it stays pending only when the change is one the policy requires an independent reviewer for.

6. Show and ship

Lead with the evidence the user can check themselves: the running result, a screenshot, a recording, or the command output. Then report:

  • Done: the outcome, in the user's terms.
  • Check: how the user can see it working with the tools they already use; give a command only to someone who runs commands.
  • Decisions: the notable choices you made that the agreement did not cover, with their reason. Omit when empty.
  • Open: what remains, including checks you could not run. Omit when empty.
  • Next: the next action and who owns it; work that follows starts in a new session with /work and its issue or project.

Then ask whether to ship. Shipping means pushing the branch and opening a pull request that closes the issue, if any, following ship; the issue moves to In Review. Merge and deployment each need their own request. After a merge, confirm the issue reached Done.

Done: the user has the verified result and either shipped it or chose not to. Pending: shipping could not complete; the report names the exact remaining step.

Resume

Rebuild the state from Linear (the issue or project, its comments and relations), the branch and its commits, and the conversation. Verify it against the current code, tell the user where the work stands, and continue from the first unfinished step without redoing settled decisions. An issue of a project continues under the project, with project; so does the project itself. A standalone issue already In Progress or In Review, with its work branch, continues where it stopped, applying any Linear update its last chore(wip) commit lists. Any other issue is a request: start at step 1 with the issue as its text.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.