agentleFS
TalonT-OrgTalonT-Org/AutoSkillit/.claude/skills/update-reqs/SKILL.md

update-reqs

Skill5 starsChanged 6 months agoMITView on GitHub

Add or update functional requirement documents in docs/requirements/

1 other project uses a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

18 rules. About 0 are common, 13 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈13

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Add or update functional requirement documents that describe what the software must do.

    line 15
  2. Distinctive:

    If the user specifies a component, only update that file.

    line 25
  3. Distinctive:

    Append and update only: NEVER remove a requirement.

    line 29
  4. Very specific:

    Mark, don't delete: If a requirement no longer appears to match observed software behavior, set its status to Warning with a brief reason.

    line 30
  5. Distinctive:

    No implementation details: No language, framework, library, file path, class name, function name, data structure, or internal architecture …

    line 31
  6. Distinctive:

    Each requirement is one testable statement: If you cannot verify whether the software satisfies a requirement through its external behavior …

    line 33
  7. Very specific:

    Read all existing files in docs/requirements/.

    line 68
  8. Very specific:

    Verify it still accurately describes the software.

    line 73
  9. Distinctive:

    If accurate but the wording is incomplete or imprecise, update the requirement text.

    line 74
  10. Very specific:

    Create or update files in docs/requirements/.

    line 81
  11. Distinctive:

    When creating a file for the first time, include all discovered requirements organized by functional area.

    line 84
  12. Distinctive:

    After writing updates, launch one Explore subagent per requirement file.

    line 88
  13. Distinctive:

    Leave unchanged requirements untouched.

    line 101
  14. Very specific:

    NEVER modify source code, tests, or any file outside docs/requirements/.

    line 107
  15. Distinctive:

    NEVER write requirements about internal architecture, module layout, or code organization.

    line 108
  16. Distinctive:

    ALWAYS explore the codebase before writing.

    line 109
  17. Distinctive:

    ALWAYS read existing requirement files before making changes.

    line 110
  18. Distinctive:

    ALWAYS use the sequential numbering scheme.

    line 111

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

Update Requirements

Add or update functional requirement documents that describe what the software must do. Requirements are implementation-agnostic. From these documents alone, a team could recreate the software in any language or framework without access to the current codebase.

Scope

Requirement files live in docs/requirements/. Create files as needed based on the project's components.

FileCoverage
project.mdSystem-wide behavior, MCP tool contracts, subprocess management, data flow rules, cross-cutting constraints

If the user specifies a component, only update that file. Otherwise update all applicable files.

Core Rules

  • Append and update only. NEVER remove a requirement. Requirements are a living record.
  • Mark, don't delete. If a requirement no longer appears to match observed software behavior, set its status to Warning with a brief reason. Humans decide removal.
  • No implementation details. No language, framework, library, file path, class name, function name, data structure, or internal architecture belongs in a requirement. Describe observable behavior and contracts between components.
  • No code, pseudocode, or structural examples.
  • Each requirement is one testable statement. If you cannot verify whether the software satisfies a requirement through its external behavior or documented contracts, it is too vague. If a requirement uses "and" to join two distinct behaviors, split it.
  • Be concise. A requirement should rarely exceed two sentences. State the requirement directly.
  • Describe what, never how. Say what outcome the system must produce, not what mechanism achieves it.

Requirement File Format

# [Component] Requirements

## [Functional Area]

### REQ-[NNN]: [Short Title]
**Status**: Active | Warning
**Warning**: [reason this requirement may no longer apply - only present when status is Warning]

[Single requirement statement in plain prose. No bullets, sub-items, or conditional trees.]

Rules:

  • Numbers are sequential per file starting at REQ-001
  • Functional areas group related requirements under a shared heading
  • New requirements append to the end of their functional area
  • New functional areas append after existing ones
  • A requirement's number never changes, even if requirements above it receive warnings

Workflow

1. Explore Current Behavior

Launch parallel Explore subagents to understand what the software currently does. Focus on observable behavior and contracts, not implementation structure.

For project.md: What MCP tools are exposed, what each tool does, how subprocess management works, what safety guards exist, what timeouts and error handling guarantees exist, how the server behaves as an MCP endpoint.

2. Read Existing Requirements

Read all existing files in docs/requirements/. Note every current requirement number, status, and functional area. If a file does not exist, it will be created.

3. Compare Behavior to Requirements

For each existing requirement:

  • Verify it still accurately describes the software. If not, set status to Warning with a reason.
  • If accurate but the wording is incomplete or imprecise, update the requirement text.

For each observed behavior not yet covered by a requirement:

  • Draft a new requirement with the next sequential number under the appropriate functional area.

4. Write Updates

  • Create or update files in docs/requirements/.
  • Preserve every existing requirement. Only modify status or requirement text, never delete entries.
  • New requirements go at the end of their functional area.
  • When creating a file for the first time, include all discovered requirements organized by functional area.

5. Validate All Requirements

After writing updates, launch one Explore subagent per requirement file. Each subagent independently validates every requirement in its assigned file against the actual codebase.

For each requirement the subagent must determine:

  • Whether the described behavior exists in the software
  • Whether the requirement accurately reflects that behavior as implemented

The subagent returns a list of requirement numbers with a verdict: confirmed (behavior matches), warning (behavior missing, changed, or ambiguous), or unchanged (status already correct).

6. Apply Validation Results

Using the subagent findings from step 5:

  • Set any requirement marked warning to Status: Warning with the reason the subagent identified.
  • Restore any previously warned requirement marked confirmed back to Status: Active and remove the Warning line.
  • Leave unchanged requirements untouched.

This is the final write pass. No further exploration or requirement additions happen after validation.

Constraints

  • NEVER modify source code, tests, or any file outside docs/requirements/.
  • NEVER write requirements about internal architecture, module layout, or code organization. Only specify behavior visible at component boundaries.
  • ALWAYS explore the codebase before writing. Do not write requirements from memory or assumptions.
  • ALWAYS read existing requirement files before making changes. Do not create duplicate requirements.
  • ALWAYS use the sequential numbering scheme. Never skip or reuse numbers.

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.