Skip to content

Add provider-neutral spec operation#243

Merged
ferueda merged 5 commits into
mainfrom
codex/fer-273-spec-operation
Jul 23, 2026
Merged

Add provider-neutral spec operation#243
ferueda merged 5 commits into
mainfrom
codex/fer-273-spec-operation

Conversation

@ferueda

@ferueda ferueda commented Jul 23, 2026

Copy link
Copy Markdown
Owner

What changed

  • add a provider-neutral Spec operation under lib/spec
  • require issue-keyed artifacts at dev/plans/<Linear issue>.md
  • align Spec policy with established planning discipline:
    • repository intent and accepted-requirement authority order
    • research and reality reconciliation before structuring
    • resolved planning decisions and explicit executor-time discovery
    • smallest coherent change and vertical delivery slices
    • decision-focused, right-sized, portable artifacts
    • highest stable verification seam
    • focused executor-aid discovery
  • validate structured decisions, trusted provenance, and artifact workspace safety
  • share normalized work-item schemas between Triage and Spec
  • document the new domain and artifact boundaries

Why

FER-273 needs a reusable operation that can research one routed issue and either write a minimum-sufficient implementation Spec or return a true prerequisite question. The operation stays independent of Linear, Inngest, Git, and publication concerns.

The policy keeps the Triage distinction intact: a later reviewer choice does not become Needs Input when the agent can first research options and recommend one, while a missing choice that prevents any coherent scope or architecture stops before an artifact is written.

Impact

This introduces the domain primitive needed by a later thin Inngest Spec consumer. It does not yet route Linear issues, publish plan commits, or change the existing Triage workflow.

Verification

  • make check
  • focused Spec tests: 59 passed
  • change review 20260723-012729-2e3109: implementation and quality passed with zero findings
  • docs-drift review completed; both naming/ownership findings fixed in ac169848
  • live Codex SDK smoke against Spec policy v2 using gpt-5.6-terra at medium reasoning: 3/3 passed
    • compact change → concise ready-for-review Spec
    • cross-boundary change → coherent reuse of existing persistence and highest CLI/reload test seam
    • unavailable authoritative policy → needs input with no artifact

All live-smoke repositories and logs were disposable and cleaned after the run.

ferueda commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

Summary: The PR adds a Spec operation that writes one issue-keyed plan and documents its domain boundary.

Must-fix drift:

  • lib/spec/spec.tsdev/plans/README.md: distinguish automated Linear Spec artifacts named <ISSUE-KEY>.md from manual planning-workflow files named YYMMDD-short-slug.md; the current “New plans” rule permits only the latter.
  • lib/spec/spec.tsdocs/contributing/architecture.md: add the committed issue-keyed Spec artifact to the artifact map and state that the operation writes but does not publish it.

Advisory:

  • None.

Verification: make check

@ferueda ferueda self-assigned this Jul 23, 2026
@ferueda
ferueda marked this pull request as ready for review July 23, 2026 01:52

ferueda commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

Docs drift triage complete.

Implemented in ac169848:

  • dev/plans/README.md now distinguishes manual YYMMDD-short-slug.md plans from Linear Spec <ISSUE-KEY>.md artifacts.
  • docs/contributing/architecture.md now records the tracked Spec artifact and keeps publication outside the operation.

No advisory findings remain.

Verification: make check

@ferueda
ferueda merged commit 92c95e7 into main Jul 23, 2026
4 checks passed
@ferueda
ferueda deleted the codex/fer-273-spec-operation branch July 23, 2026 03:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant