vict00r99/rune-stone/rune-writer

Claude Code and agent skill by vict00r99/rune-stone

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Create RUNE specifications from requirements and implement code from specs. Use when a user wants a RUNE spec (YAML or Markdown) or needs to implement code from an existing spec.

Install

npx vskill@latest install vict00r99/rune-stone/rune-writer

SKILL.md

For the full RUNE pattern reference, see SPEC.md.


The Pattern

Every RUNE spec defines these fields:

FieldRequiredPurpose
SIGNATUREYesExact function interface in target language syntax
INTENTYesWhat it does, 1-3 sentences
BEHAVIORYesLogic rules in WHEN/THEN format
TESTSYesMinimum 3: happy path, boundary, error
CONSTRAINTSNoInput validation rules
EDGE_CASESNoBoundary conditions and expected behavior
DEPENDENCIESNoExternal libraries
EXAMPLESNoUsage examples
COMPLEXITYNoBig-O time/space
Rules
  • SIGNATURE must use the target language's actual syntax, not pseudocode
  • BEHAVIOR must use WHEN/THEN format — each business rule = one clause
  • TESTS must have at least 3 cases: one happy path, one boundary, one error
  • INTENT must be 1-3 sentences, clear enough for a docstring
  • Every BEHAVIOR rule must have at least one corresponding test
  • Error messages in BEHAVIOR must be specific, not generic

Format: YAML (.rune files)

Use standalone .rune files when you want formal, parseable specs. The SIGNATURE uses the target language's real syntax:

yaml
---
meta:
name: validate_coupon
language: python
version: 1.0
tags: [e-commerce, validation]
---
RUNE: validate_coupon
SIGNATURE: |
def validate_coupon(code: str, coupons: list[dict], current_date: str) -> tuple[bool, str]
INTENT: |
Validates a coupon code against active coupons. Checks existence,
expiration, and discount value. Case-insensitive matching.
BEHAVIOR:
- WHEN code is empty THEN return (False, "Coupon code cannot be empty")
- WHEN code not found (case-insensitive) THEN return (False, "Coupon code not found")
- WHEN coupon has expired THEN return (False, "Coupon has expired")
- OTHERWISE return (True, matching_coupon)
TESTS:
- "validate_coupon('SAVE10', [...], '2025-01-15')[0] == True"
- "validate_coupon('save10', [...], '2025-01-15')[0] == True"
- "validate_coupon('INVALID', [...], '2025-01-15')[0] == False"
- "validate_coupon('', [], '2025-01-15')[0] == False"

The pattern is the same in every language. Only the SIGNATURE syntax and naming conventions change.

Format: Markdown (embedded in any .md)

Use markdown sections when embedding specs inside AGENTS.md or other docs:

markdown
### validate_coupon
**SIGNATURE:** `def validate_coupon(code: str, coupons: list[dict], current_date: str) -> tuple[bool, str]`
**INTENT:** Validates a coupon code against active coupons. Checks existence, expiration, and discount value. Case-insensitive matching.
**BEHAVIOR:**
-WHEN code is empty THEN return (False, "Coupon code cannot be empty")
-WHEN code not found (case-insensitive) THEN return (False, "Coupon code not found")
-WHEN coupon has expired THEN return (False, "Coupon has expired")
-OTHERWISE return (True, matching_coupon)
**TESTS:**
-`validate_coupon('SAVE10', [...], '2025-01-15')[0] == True`
-`validate_coupon('', [], '2025-01-15')[0] == False`

Both formats contain the same information. The AI treats them identically.


Generating Specs from Requirements

When a user describes what they need in plain language, generate a RUNE spec.

Process
  1. Extract from the requirement:
  • What is the function's purpose?
  • What are the inputs and outputs?
  • What are the business rules?
  • What could go wrong? (edge cases)
  1. Map each business rule to a WHEN/THEN clause in BEHAVIOR
  1. Derive CONSTRAINTS from input descriptions ("must be positive", "between 0 and 100")
  1. Derive EDGE_CASES from boundaries (empty input, zero, max value, invalid types)
  1. Write TESTS that verify each BEHAVIOR rule plus edge cases. Minimum 3, aim for 8-15.
  1. Ask the user which format they want (YAML .rune file or Markdown section). If unclear, default to the same format used elsewhere in their project.
  1. Validate the spec against the checklist below before presenting it.

Validating Specs

When asked to validate a spec, or before presenting one you generated, check:

Structure
  • [ ] All required fields present: SIGNATURE, INTENT, BEHAVIOR, TESTS
  • [ ] If YAML: valid YAML syntax, meta section with name and language
  • [ ] If Markdown: headers use bold field names, code in backticks
Content
  • [ ] SIGNATURE uses actual language syntax (not pseudocode)
  • [ ] BEHAVIOR uses WHEN/THEN format
  • [ ] TESTS has at least 3 cases (happy path, boundary, error)
  • [ ] INTENT is 1-3 sentences
  • [ ] Every BEHAVIOR rule has at least one test
  • [ ] Every EDGE_CASE has a corresponding test
  • [ ] Error messages are specific (not generic "invalid input")

Implementing from Specs

When given a RUNE spec (in either format) to implement, generate code that follows it exactly.

Process
  1. Use the exact SIGNATURE — function name, parameters, types, return type
  2. Implement each BEHAVIOR rule in order — each WHEN/THEN becomes a conditional branch in the target language
  3. Add input validation from CONSTRAINTS
  4. Handle every EDGE_CASE
  5. Add a doc comment from INTENT (docstring, JSDoc, GoDoc, rustdoc, etc.)
  6. Generate tests from TESTS using the target language's testing framework
Rules
  • Never deviate from the SIGNATURE
  • Implement ALL BEHAVIOR rules, not just some
  • Every item in TESTS must have a corresponding test function
  • Error messages must match those specified in BEHAVIOR
  • Follow the target language's conventions

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
58
Repository forks
10
7-day trend score
20

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 18 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/vict00r99/rune-stone/rune-writer/badge)](https://verified-skill.com/skills/vict00r99/rune-stone/rune-writer)

Something wrong with this skill or its page? Tell us.