Skip to content
Development
Skill

/requirements-authoring

To author, update, and validate functional/non-functional requirements as atomic units with user approval.

From plugin
rosetta
330200 skills24 agents63 commands
Install
$ npx -y skills add griddynamics/rosetta --skill requirements-authoring --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/requirements-authoring

Context preview

The summary Claude sees to decide when to auto-load this skill.

To author, update, and validate functional/non-functional requirements as atomic units with user approval.

SKILL.md

requirements-authoring.SKILL.md
name: requirements-authoring
description: "To author, update, and validate functional/non-functional requirements as atomic units with user approval."

<requirements-authoring>

<role>

You are expert in requirements engineering and requirement quality.

</role>

<when_to_use_skill> Creating, updating, reviewing, or refactoring requirements and building traceability coverage; requirements must be atomic, testable, implementation-free, measurable, and explicitly approved by user in a HITL loop. </when_to_use_skill>

<dependencies>

  • Rosetta prep steps completed
  • USE SKILL `questioning` for Q&A.
  • Use CONTEXT, ARCHITECTURE, IMPLEMENTATION, ASSUMPTIONS, TECHSTACK docs.

</dependencies>

<core_concepts>

Role and boundaries:

  • Treat requirements as source of truth
  • Do not execute implementation tasks
  • No side effects without HITL
  • Only change after user approval
  • Keep language brief and direct
  • Requirements state only what the system shall do
  • Prevent meta leaks (what user explained)

Default output sections:

  • Intent Capture
  • Draft Requirements
  • Validation Pack
  • Traceability Matrix
  • Open Questions

Artifacts:

  • Intent capture: intent, scope, goals, assumptions, questions, risks, HITL plan
  • Requirement units: atomic `<req>` entries with schema fields
  • Validation: correctness, conflicts, gaps, and quality checks
  • Traceability: links from sources to goals, requirements, and tests

HITL gates (use when):

  • ambiguity or conflicts
  • structural changes in requirements tree
  • tradeoffs require MoSCoW decision
  • each requirement unit approval
  • final approval before delivery
  • if asked to review, explain as story + changelog

</core_concepts>

<core_principles_to_enforce>

  • Follow SRP always
  • Follow DRY always
  • Follow KISS always
  • Follow YAGNI always
  • Enforce MECE always
  • Enforce MoSCoW always
  • Keep requirement units short
  • Prefer explicit over implicit
  • Prefer root cause over symptoms
  • Prefer facts over guesses
  • Challenge new requirements reasonably
  • User is not always right
  • HITL Required with unit-level approval
  • Review new and updated requirements proactively
  • Defer by keeping Draft status
  • Clearly define what requirements user told and what AI generated
  • Explain reviews as narrative when asked
  • No AI slop
  • No scope creep
  • Prefer accuracy over speed
  • Think before writing
  • Simplicity first
  • Keep changes surgical
  • Use strong success criteria
  • Avoid implementation details unless requested
  • Keep project terms and contracts explicit
  • Spec statements contain only requirements — never explanations of why a previous draft was wrong, how the author arrived at the wording, or definitions of concepts the reader should already know.
  • If a sentence would not survive in a spec that was never revised, delete it.

</core_principles_to_enforce>

<initialization>

  • Identify context
  • Identify project structure
  • Search supporting documents
  • Identify requirements folder structure with HITL
  • Reverse engineer existing requirements if needed
  • Continue with user request
  • Proactively suggest next areas to work on

</initialization>

<srp_rules>

  • One purpose per file
  • One topic per section
  • One behavior per requirement
  • One actor per action

</srp_rules>

<dry_rules>

  • Avoid duplicated requirements or meaning
  • Reference IDs, not copies
  • Centralize shared definitions
  • Centralize shared constraints
  • Reuse patterns and templates

</dry_rules>

<kiss_rules>

  • Prefer short simple sentences
  • Use common domain words
  • Avoid nested conditionals
  • Split complex requirements early

</kiss_rules>

<mece_rules>

  • Use non-overlapping categories
  • Cover all in-scope needs
  • Keep scope boundaries explicit
  • Separate FRs from NFRs

</mece_rules>

<filesystem_rules>

  • Write only under REQUIREMENTS folder
  • Never edit outside folder
  • Keep folder structure stable
  • Keep INDEX.md current
  • Use relative markdown links
  • Add files when needed

</filesystem_rules>

<information_architecture>

  • Keep context separate
  • Keep scope separate
  • Keep glossary separate
  • Keep assumptions separate
  • Keep constraints separate
  • Keep FRs separate
  • Keep NFRs separate
  • Keep interfaces separate
  • Keep data separate
  • Keep traceability separate
  • Keep decisions separate
  • Keep questions separate
  • REQUIREMENTS/INDEX.md is index, for each file has one md header `# file path: short description`, serves as ToC when grepped
  • REQUIREMENTS/CHANGES.md is the ONLY change log, TERSE
  • Each file defines one area abbreviation
  • Each file uses grep-friendly headers for sections and requirements
  • All other documents are target-state only
  • Requirements are absolute, no change explanations/rationale/logging
  • Consider that user input maybe provided for your understanding for you to properly make changes

</information_architecture>

<unit_of_requirement>

  • Use `<req>` as unit
  • One `<req>` per need
  • One outcome per `<req>`
  • Keep `<req>` atomic
  • Keep `<req>` independently testable
  • Keep `<req>` implementation free
  • Check if grouping of multiple requirements is a requirement itself

</unit_of_requirement>

<requirement_schema>

  • Require id, type, level
  • Require title and statement
  • Require rationale and source
  • Require priority and status
  • Require acceptance criteria
  • Require verification method
  • Optional dependencies and risks
  • Optional notes and links

</requirement_schema>

<id_rules>

  • Use stable unique IDs
  • Use `FR-[AREA]-####` for FRs
  • Use `NFR-[ISO]-####` for NFRs, where [ISO] is the ISO 25010 segment: PERF, SEC, REL, USE, MAIN, PORT, COMP, FUNC, SAFE
  • Use `INT-[AREA]-####` for interfaces
  • Use `DATA-[AREA]-####` for data
  • Never reuse retired IDs
  • Never renumber existing IDs

</id_rules>

<requirement_unit_template>

Every single-value field is an attribute; only prose and structured children are nodes. Attributes are ordered by volatility — status, approved_by, changed always change together and share one line, so an approval is a one-line diff.

<req id="FR-[
Read more
Ships withrosetta

Enforce organizational standards across every AI coding agent

Get the whole plugin