cumulus-sdd 0.1.0

Token-efficient spec-driven development CLI (embedded prompts + slash-command generators).
//! Compile-time embedded framework assets.
//!
//! Every prompt, template, and persona is baked into the binary via
//! `include_str!`, so `cumulus init` needs zero network / filesystem source —
//! the binary IS the framework distribution.

/// A file written verbatim into the target repo by `cumulus init`.
pub struct Asset {
    /// Destination path relative to the project root.
    pub dest: &'static str,
    pub body: &'static str,
}

/// A portable slash-command definition (frontmatter + caveman-dense body).
pub struct Skill {
    pub name: &'static str,
    /// Raw file contents (frontmatter + body), transformed per target.
    pub raw: &'static str,
}

// ── Framework files injected on `init` (agents + templates + skills) ─────────
pub const ASSETS: &[Asset] = &[
    // personas
    Asset { dest: ".cumulus-sdd/agents/analyst.md",   body: include_str!("../agents/analyst.md") },
    Asset { dest: ".cumulus-sdd/agents/architect.md", body: include_str!("../agents/architect.md") },
    Asset { dest: ".cumulus-sdd/agents/developer.md", body: include_str!("../agents/developer.md") },
    Asset { dest: ".cumulus-sdd/agents/qa.md",        body: include_str!("../agents/qa.md") },
    // schemas
    Asset { dest: ".cumulus-sdd/templates/brief-template.md", body: include_str!("../templates/brief-template.md") },
    Asset { dest: ".cumulus-sdd/templates/prd-template.md",   body: include_str!("../templates/prd-template.md") },
    Asset { dest: ".cumulus-sdd/templates/arch-template.md",  body: include_str!("../templates/arch-template.md") },
    Asset { dest: ".cumulus-sdd/templates/story-template.md", body: include_str!("../templates/story-template.md") },
    // skill sources (source of truth for slash-command generation)
    Asset { dest: ".cumulus-sdd/templates/skills/create-project-context.md", body: include_str!("../templates/skills/create-project-context.md") },
    Asset { dest: ".cumulus-sdd/templates/skills/prd-review.md",             body: include_str!("../templates/skills/prd-review.md") },
    Asset { dest: ".cumulus-sdd/templates/skills/create-sprint.md",          body: include_str!("../templates/skills/create-sprint.md") },
    Asset { dest: ".cumulus-sdd/templates/skills/create-story.md",           body: include_str!("../templates/skills/create-story.md") },
    Asset { dest: ".cumulus-sdd/templates/skills/implement-story.md",        body: include_str!("../templates/skills/implement-story.md") },
    Asset { dest: ".cumulus-sdd/templates/skills/code-review.md",            body: include_str!("../templates/skills/code-review.md") },
];

// ── Skills consumed by the slash-command generator ───────────────────────────
pub const SKILLS: &[Skill] = &[
    Skill { name: "create-project-context", raw: include_str!("../templates/skills/create-project-context.md") },
    Skill { name: "prd-review",             raw: include_str!("../templates/skills/prd-review.md") },
    Skill { name: "create-sprint",          raw: include_str!("../templates/skills/create-sprint.md") },
    Skill { name: "create-story",           raw: include_str!("../templates/skills/create-story.md") },
    Skill { name: "implement-story",        raw: include_str!("../templates/skills/implement-story.md") },
    Skill { name: "code-review",            raw: include_str!("../templates/skills/code-review.md") },
];