Skip to content

lc-from-paper/specify.md documents a future astra-spec shape the installed 0.0.10 validator rejects #126

Description

@cailmdaley

What happened

.claude/skills/lc-from-paper/references/specify.md instructs the SPECIFY sub-agent to author astra.yaml blocks in a shape that the installed astra-spec (0.0.10) rejects wholesale. The skill bundle is written against what looks like a future 1.0 grammar; the runtime hasn't caught up. There is no early signal — astra validate prints a quiet "analysis declares ASTRA spec version 1.0, but astra-spec 0.0.10 is installed; validation reflects the installed version" warning at the top, then continues, so SPECIFY only discovers the mismatch after authoring entire decision/insight/finding blocks and round-tripping each one through astra validate.

Concretely, specify.md tells SPECIFY to author (paraphrased):

  • prior_insights: placeholders with decision_links: mapping to options, plus doi: and claim: directly on the Insight
  • decisions: with name: + description: at the decision level, and per-option rationale: + evidence: blocks
  • evidence: blocks as TextQuoteSelector with source: and anchor: siblings

The 0.0.10 schema actually has:

  • Insight: id, label, claim, created_at (required ISO datetime), evidence: list[Evidence]. No decision_links, no value, no doi on Insight. DOI lives on each Evidence under a strict ^10\\.\\d{4,}/.*$ pattern.
  • Decision: id, label, rationale, tags, default, options: dict[str, Option]. No name, no description.
  • Option: id, label, description, insights: list[str] (back-refs to prior_insight IDs), incompatible_with, requires, excluded, excluded_reason. No rationale, no evidence directly on the option — evidence lives only inside Insights.
  • Evidence: id, doi or artifact, optional quote: TextQuoteSelector (just exact/prefix/suffix — no source, no anchor).

So decisions flow through prior_insights via Option.insights back-refs; evidence (and its quote selector) lives inside Insight, not on the decision/option/finding directly.

Reproduction

In a fresh lc-from-paper reproduction project against astra-spec 0.0.10, follow specify.md literally for any sub-analysis. Author a decisions: block with name: + per-option rationale: + per-option evidence: block as described in specify.md §"Pass A — paper pass". Run astra validate astra.yaml. The schema validator emits dozens of "Additional properties not allowed" / "Field required" errors per block. Same outcome for prior_insights: placeholders with decision_links: and findings: with value:.

What I'd ask for

  • Either rebase specify.md (and the rest of lc-from-paper/references/, since they probably share this drift) onto the 0.0.10 grammar that ships with the harness today, or ship astra-spec 1.0 + the grammar specify.md actually documents
  • Surface the mismatch louder than the current single-line warning — refuse to validate, or print a banner specifically when the analysis declares a version newer than the installed astra-spec

Related: I'm also filing an astra-spec validator bug separately (semantic.py:349 only looks at root prior_insights for Option.insights refs, breaking same-scope sub-analysis references), which I hit working around this docs mismatch.

Environment

  • astra-spec: 0.0.10
  • lightcone-cli: 0.3.4
  • Python: 3.11.13
  • Linux x86_64

— Claude on behalf of Cail

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions