Skip to content

docs(openspec): seed OpenSpec with current-state capability specs#77

Merged
johannesjo merged 2 commits intomainfrom
claude/research-open-spec-practices-FqsAt
Apr 20, 2026
Merged

docs(openspec): seed OpenSpec with current-state capability specs#77
johannesjo merged 2 commits intomainfrom
claude/research-open-spec-practices-FqsAt

Conversation

@johannesjo
Copy link
Copy Markdown
Owner

Introduce OpenSpec by scaffolding openspec/ via the canonical
openspec init layout and documenting two already-shipped capabilities as
living specs (not in-flight change proposals):

  • openspec/config.yaml — schema + project context (stack, layout,
    conventions) consumed by the OpenSpec CLI and agent skills.
  • openspec/specs/remote-access/spec.md — HTTP+WebSocket server, token auth,
    agent list broadcasting, streaming, ring-buffer scrollback, mobile SPA.
  • openspec/specs/steps-tracking/spec.md — opt-in prompt injection,
    .claude/steps.json watcher with debounce, IPC contract, panel rendering,
    git exclude for linked worktrees.

Specs use the canonical Requirement/Scenario (WHEN/THEN) format and pass
openspec validate --strict. openspec/changes/ is intentionally empty —
reserved for genuinely new proposals. Editor integrations under .claude/
are regenerated locally via npx @fission-ai/openspec@latest init --tools claude since .claude/ is gitignored.

claude added 2 commits April 19, 2026 18:38
Introduce OpenSpec by scaffolding `openspec/` via the canonical
`openspec init` layout and documenting two already-shipped capabilities as
living specs (not in-flight change proposals):

- openspec/config.yaml — schema + project context (stack, layout,
  conventions) consumed by the OpenSpec CLI and agent skills.
- openspec/specs/remote-access/spec.md — HTTP+WebSocket server, token auth,
  agent list broadcasting, streaming, ring-buffer scrollback, mobile SPA.
- openspec/specs/steps-tracking/spec.md — opt-in prompt injection,
  `.claude/steps.json` watcher with debounce, IPC contract, panel rendering,
  git exclude for linked worktrees.

Specs use the canonical Requirement/Scenario (WHEN/THEN) format and pass
`openspec validate --strict`. `openspec/changes/` is intentionally empty —
reserved for genuinely new proposals. Editor integrations under `.claude/`
are regenerated locally via `npx @fission-ai/openspec@latest init --tools
claude` since `.claude/` is gitignored.
Review findings folded in:

- Fix 3 factual discrepancies in steps-tracking:
  * `awaiting_review` pause is a prompt-contract the injected instruction
    asks the agent to follow, not a system-enforced behavior. Fold it into
    the prompt-injection scenario and drop the standalone scenario.
  * Timestamps without a timezone are tolerated by the renderer for
    display; the app itself already emits UTC-suffixed timestamps. Reword
    accordingly.
  * Remove the "auto-scroll on new step" scenario — not implemented.

- Strip library / internal-API identifiers from normative text in
  remote-access so the spec stays durable when implementation details
  change: `http.createServer`, `ws WebSocketServer`, `crypto.randomBytes`,
  `crypto.timingSafeEqual`, `verifyClient`, `maxPayload`, and the exact
  `Cache-Control` string. Observable contract (0.0.0.0, 4001, 429, 401,
  byte/timeout budgets) is retained.

- Tighten the desktop UI counter scenario (was vague "connection churn").

- Trim both Purpose sections to WHY only; HOW belongs in requirements.

- Reword the steps-file "append-only" requirement as an app guarantee
  rather than an agent obligation (the app can't enforce agent behavior
  at runtime).

- Trim `openspec/config.yaml` context to avoid duplicating `CLAUDE.md`.
  Add a third spec-authoring rule (describe observable behavior, not
  library names).

- Add a `## Specs` section to `CLAUDE.md` pointing agents at
  `openspec/specs/` and the `/opsx:propose` flow.

`openspec validate --all --strict` still passes (2/2).
@johannesjo johannesjo merged commit 4632854 into main Apr 20, 2026
2 checks passed
@johannesjo johannesjo deleted the claude/research-open-spec-practices-FqsAt branch April 20, 2026 10:34
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.

2 participants