adaptationio

ac-spec-parser

Parse and validate project specifications. Use when loading YAML/JSON specs, validating spec structure, extracting requirements, or converting between spec formats.

adaptationio 11 2 Updated 7mo ago

Resources

1
GitHub

Install

npx skillscat add adaptationio/skrillz/ac-spec-parser

Install via the SkillsCat registry.

About this skill

We need to produce a 2-3 sentence plain-text summary, objective, factual, no marketing, no superlatives, no calls to action. At most 60 words. Should explain what skill does, what problem it solves, when to use. We need to output only the summary text, no quotes, no markdown. Let's craft: "The skill parses YAML, JSON, or Markdown project specifications into structured data, validates the schema, and extracts requirements for downstream processing. It solves the problem of inconsistent or malformed spec files by enforcing required fields, unique IDs, and valid priority values.

SKILL.md

AC Spec Parser

Parse and validate project specifications for autonomous coding.

Purpose

Parses YAML/JSON/Markdown specifications into structured data for feature generation and planning.

Quick Start

from scripts.spec_parser import SpecParser

parser = SpecParser(project_dir)
spec = await parser.parse("spec.yaml")
print(spec.project_name)
print(spec.requirements)

Supported Formats

  • YAML: .yaml, .yml - Structured specifications
  • JSON: .json - Machine-readable specs
  • Markdown: .md - Human-readable specs with sections

Specification Schema

project:
  name: "Project Name"
  description: "What the project does"
  type: "web-app|api|cli|library"

requirements:
  functional:
    - id: "REQ-001"
      description: "User can login"
      priority: "high|medium|low"
      acceptance_criteria:
        - "Valid credentials grant access"
        - "Invalid credentials show error"

  non_functional:
    - id: "NFR-001"
      description: "Response under 200ms"
      category: "performance|security|usability"

technology:
  language: "python|typescript|go"
  framework: "fastapi|nextjs|gin"
  database: "postgresql|mongodb"

constraints:
  - "Must run on AWS"
  - "Budget under $100/month"

Workflow

  1. Load: Read spec file from disk
  2. Parse: Convert to structured data
  3. Validate: Check required fields and schema
  4. Normalize: Standardize format for downstream use
  5. Export: Output to feature analyzer

Validation Rules

  • Project name required
  • At least one functional requirement
  • All requirements have unique IDs
  • Priority values are valid
  • Technology stack is coherent

Integration

Used by:

  • ac-spec-generator: Generates feature list from parsed spec
  • ac-feature-analyzer: Analyzes requirements
  • ac-complexity-assessor: Estimates complexity

API Reference

See scripts/spec_parser.py for full implementation.