Skip to content

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

@cailmdaley

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions