Back to Blog

other

Writing Specs: A Quality Bar for Agent-Generated Specs

Learn how JetBrains' writing-specs skill keeps agent-drafted specs short, honest, and on-rails—no placeholders, no bloat.

OpenAgentSkillPublished:

Where this fits

You're building an agent that drafts architecture docs as part of a larger workflow. The first version comes back as a 1,500-line file with [TBD] sections and a restatement of every file in the repo. Your team needs specs that are scannable, truthful, and actually useful for decision-making. The writing-specs skill from JetBrains' thinkrail sets that shared quality bar—so every spec your agent produces follows the same discipline, regardless of which workflow step triggered it.

Why agents benefit

  • Enforces brevity by default: The skill instructs the agent to target signal, not completeness—specs stay small enough to read in one sitting, avoiding the classic "everything dump" failure mode.
  • Blocks placeholder padding: Sections that aren't settled simply don't exist. The agent can't hide behind [TBD] or empty headings, forcing it to either commit to content or omit it.
  • Keeps intent front and center: The agent explains what a component owns and where its boundary lies, rather than listing files or repeating code—making the spec a decision tool, not a mirror.
  • Plugs into existing workflows: Process skills can name this concept at draft/revise steps, so you get consistency without rewriting your orchestration logic.
  • Accrues family rules: As your spec-graph rules evolve, they land here—making this a living quality contract, not a static template.

Practical scenarios

Drafting a goal-and-requirements spec

Your agent kicks off a new feature. The workflow names writing-specs at the drafting step. Instead of producing a generic requirements doc, the agent writes a short, honest spec: the goal, the boundary, and only settled requirements. Unresolved questions are left out, not marked as placeholders.

Revising an architecture spec after code changes

A refactor shifts module boundaries. The agent revisits the architecture spec and updates only what changed—removing stale sections and adjusting ownership lines. The spec stays current without ballooning in size.

Module SPEC inside a multi-step pipeline

You have a pipeline that generates module-level specs for each service. writing-specs is invoked at each module step, ensuring every output adheres to the same quality bar—even when different agents handle different modules.

Add it to your agent workflow

Install the skill via npx:

npx skills add JetBrains/thinkrail --skill writing-specs

Then reference it in your workflow definition. For example, in a step that drafts a spec:

- name: draft-architecture
  skill: writing-specs
  input: { artifact: architecture, context: "..." }

The skill will guide the agent to produce a short, honest, on-rails spec—no extra execution logic needed.

Compare before adopting

Look at how other spec-writing skills handle quality. Check whether they enforce brevity and honesty or just generate boilerplate. Evaluate maintenance freshness (last commit, issue responses) and whether the skill integrates cleanly with your workflow engine. Also consider if you need the full spec-graph tooling from thinkrail or just this quality bar on its own.

Why it is worth tracking

With 38 stars and active authorship from JetBrains, this skill represents a pragmatic approach to a common agent failure: bloated, dishonest specs. Its focus on a shared quality bar—rather than a rigid workflow—makes it adaptable. Track it if you're building agent workflows that produce any kind of specification artifact; it's a low-risk, high-leverage addition. For more context, see the skill page on OpenAgentSkill.

Featured Skill

writing-specs

Skill by JetBrains

Writing Specs: A Quality Bar for Agent-Generated Specs | OpenAgentSkill