Commit Graph

191 Commits

Author SHA1 Message Date
irl-dan fad09de6c8 Make prose write interactive in host 2026-05-18 20:49:51 -07:00
Raymond Weitekamp e732c6dded cli: align harness smoke with bundled bootstrap 2026-05-18 21:55:52 -04:00
Raymond Weitekamp 0cff6382ae cli: make prose write self-contained 2026-05-18 21:49:54 -04:00
Raymond Weitekamp fd88ef9c09 std: tighten prose author planning 2026-05-18 20:55:53 -04:00
Raymond Weitekamp f14f47d72a cli: refresh brace-expansion lockfile 2026-05-18 13:50:26 -04:00
Raymond Weitekamp 52cf1205bc std: add prose author workflow 2026-05-18 13:00:54 -04:00
dan a81cab882a Refresh README brand hero
Update the prose README hero and tagline to match the OpenProse Author Outcomes brand.
2026-05-14 18:42:29 -07:00
dan d8aab435e0 feat: add judge architecture prose contract support (#82) 2026-05-14 03:01:44 -07:00
dan 2cb079a995 std: add prose contributor program (#75) 2026-05-13 14:26:27 -07:00
Raymond Weitekamp a55acbec26 feat(spec): declare host tools (#80)
Add a section-level ### Tools contract for service and system files, with deterministic cli:<name> resolution at compile time. Document the semantics across Contract Markdown, compiler, Forme, VM, and IR, add a declared-tools example, and teach the CLI to fail closed before harness forwarding on invalid or unresolved declarations.
2026-05-13 16:51:30 -04:00
Raymond Weitekamp 9a0ed61716 docs: link Grant Radar external example (#79)
* docs: link Grant Radar external example

Add Grant Radar to the OpenProse examples index without vendoring the example tree.

The canonical example remains in openprose/grant-finder so product-specific source and docs stay with the tool they exercise.

* docs: document local open-prose skill fallback

Add a minimal-shell fallback for users who have prose available but not npx, matching the public CLI skill-preflight behavior.
2026-05-13 16:45:13 -04:00
Raymond Weitekamp a6f8546476 fix(cli): pass granular Codex runtime options (#77) (#78)
Forward PROSE_CODEX_ADD_DIR and PROSE_CODEX_NETWORK into Codex SDK thread options so workspace-write runs can grant narrow extra filesystem and network capabilities without danger-full-access.

Also refresh vulnerable transitive production dependencies in the CLI lockfile so the release audit remains green.
2026-05-13 12:39:50 -04:00
Raymond Weitekamp 8462a23c26 feat(examples): add auto-pocock — chain Matt Pocock's engineering skills
Adds a new OpenProse example at `skills/open-prose/examples/auto-pocock/`
that chains Matt Pocock's published engineering skills (`grill-with-docs`,
`to-prd`, `to-issues`, `tdd`, `setup-matt-pocock-skills`) as a single
non-interactive Prose system.

The system takes one input (`--feature_brief`) and runs the full Pocock
workflow end-to-end: ensure conventions, grill, decide, draft the PRD,
slice issues, triage, do red-green-refactor TDD, verify the slice, and
create a local commit (with `commit_sha: null` and a reason on failure).
`ensure-skills` either discovers per-repo Pocock conventions in
conventional locations or scaffolds Pocock's defaults at `docs/agents/`
with an auto-created banner, so first-time users can run on a fresh
repo without setup.

Structured as the canonical multi-service example shape used by every
other multi-service example in this repo: one `kind: system` entry
file plus nine `kind: service` files under `src/`, forcing explicit
two-phase Forme wiring.

Every departure from Pocock's actual published material is honestly
labeled as an OpenProse adaptation: the two-subagent grill-then-decide
split (because there is no human in the loop), `verify-slice`
(deliberately not named `qa` because Pocock's `qa` skill is a
different, upstream, interactive skill), and the named TDD evidence
bindings (`red_evidence`, `green_evidence`, `refactor_notes` —
`tdd/SKILL.md` describes the loop in prose without naming those
artifacts). The README's "What's Pocock's, what's our adaptation"
table makes the line between his work and our adaptations explicit
and credits his public repo at https://github.com/mattpocock/skills.
2026-05-12 13:01:07 -04:00
Raymond Weitekamp 9856ac5b12 feat(spec): declared ### Skills section with fail-closed compile resolution (#62)
* feat(spec): declared ### Skills section with fail-closed compile resolution

Implements the spec from issue #60. Components declare required harness
skills via a `### Skills` section (colon form, e.g. `document-skills:pdf`).
`prose compile` resolves declared skills against ./skills/, ~/.claude/skills/,
~/.codex/skills/, and ~/.agents/skills/, and fails closed with
`skill_unresolved` before forwarding to the agent harness when any are
missing.

- Spec: skills/open-prose/contract-markdown.md gains a ### Skills row in
  the Canonical Sections table and a ## Skills H2 covering colon naming,
  search order, the BYO-harness invariant, and fail-closed semantics.
- Implementation: tools/cli/src/skills/declared.ts (parser + resolver +
  directory walker + DeclaredSkillsUnresolvedError). Pure functions; no
  I/O beyond readFile / readdir / stat.
- Wiring: tools/cli/src/commands/compile.ts pre-checks declared skills
  before forwarding the compile prompt; fails closed with
  CompileValidationError when any are unresolved. Gated behind the
  existing skillPreflight option for test parity.
- Example: skills/open-prose/examples/declared-skills/ shows the
  document-skills:pdf canonical pattern.
- Tests: 19 new (18 in declared.test.ts covering parser/resolver/walker/
  error formatter; 1 in cli.test.ts asserting compile fails closed before
  the harness is invoked when a declared skill is missing).
- BYO harness: OpenProse never installs harness skills; resolution failure
  is the user's signal to install the named skill themselves.

Resolves #60.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* feat(spec): move skill resolution into compiler program; trim spec per review

Address review feedback on #62:

- contract-markdown.md: drop the "not duplicated in frontmatter" clause —
  the rejected alternative shouldn't propagate into the spec.
- contract-markdown.md: fail-closed clause now mentions only `prose compile`;
  `prose run` enforcement is deferred per the PR description.
- compiler/index.prose.md: add a `skills_resolver` agent that owns the
  search-path order, scope aggregation, BYO invariant, and fail-closed
  semantics. Skill resolution is now a compiler/program-level
  responsibility, not a harness responsibility, so other harnesses running
  the compiler get the same behavior.
- skills/declared.ts: add a header comment pointing at the program-level
  spec; this module is the harness implementation of `skills_resolver`.
- examples/declared-skills/README.md: update wording to reference the
  compiler agent.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(ci): make smoke artifacts case-specific

* fix(ci): use deterministic audit policy

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 13:50:01 -04:00
dan b238fbb16e fix: clean up responsibility runtime playtest warts (#67) 2026-05-05 13:54:50 -04:00
Jose Montes de Oca 540394c7d1 fix(cli): load user and project settings in claude-sdk harness (#70)
The Claude Agent SDK defaults settingSources to empty, so the
claude-sdk harness silently ignored ~/.claude and <repo>/.claude:
user skills, project skills, hooks, MCP servers, and project
CLAUDE.md never reached the agent. Set ["user", "project"] so prose
runs match the workspace a user already configured for Claude Code.

Adds three tests: settingSources is always forwarded; auth_status
messages stream their output lines to stderr; auth_status with an
error field exits 1 (the existing branch was untested).
2026-05-05 10:02:21 -07:00
irl-dan 28c240ce5d chore: prepare OpenProse 0.13.1 release v0.13.1 2026-05-04 22:23:20 -07:00
dan d9aed223d2 fix responsibility runtime serve feedback (#65) 2026-05-04 22:20:39 -07:00
Jose Montes de Oca 04f3190299 chore(repo): gitignore Claude and Codex local override files (#66)
Add AGENTS.override.md and CLAUDE.local.md under a clearly labeled
"Local agent overrides" group so personal agent instruction files
cannot accidentally be committed.
2026-05-04 19:32:51 -07:00
dan c20879fe06 chore: unify OpenProse release flow (#63) v0.13.0 2026-05-04 17:26:28 -04:00
dan bef8a97a37 Refactor compiler around ProseScript IR contract (#61) 2026-05-04 16:13:59 -04:00
Jose Montes de Oca d43b85157b feat(plugin): standardize marketplace manifests and submission docs (#56)
The `open-prose` plugin ships to two marketplaces (Claude Code and Codex) via three manifest surfaces with overlapping but drifted metadata. This change unifies copy across those surfaces behind a single declarative source, ships visual assets for the Codex `interface` block, gates drift in CI, and adds a maintainer-facing submission playbook to `RELEASE.md`.

## Changes

- **Copy sync** — `.plugin-meta.json` declares the canonical strings; `scripts/sync-copy.sh` writes them into every declared destination (mirrors `bump-version.sh`). `--check` mode asserts byte-equality and reports drift.
- **Unified manifests** — same descriptions across `.claude-plugin/`, `.codex-plugin/`, and `.agents/plugins/`. Registry name aligned to `openprose` (plugin name `open-prose` unchanged). Codex `skills` path normalized.
- **Visual assets** — `assets/plugin/logo.png` (512×512) and `assets/plugin/composer-icon.png` (64×64), wired into the Codex `interface` block with `brandColor` (`#8a6b2e`), `websiteURL`, and the icon slots.
- **CI gates** — four new steps in `.github/workflows/plugin-manifest.yml` covering copy sync, asset presence, Codex interface completeness, and unified registry names. Existing version-sync gate untouched.
- **Submission playbook** — new `## Marketplace submission` section in `RELEASE.md` covering Claude Code (live today) and the Codex Plugin Directory (curated; self-serve coming soon).
2026-05-04 12:14:59 -07:00
Jose Montes de Oca f28448f2a9 chore(cli)!: remove codex subprocess harness (#55)
The CLI now ships first-party agent SDKs only. The `codex` harness —
a thin shim around `codex exec` — has been removed. Supported
harnesses: `codex-sdk`, `claude-sdk`, `mock`.

BREAKING CHANGE: `--harness codex` (and `PROSE_HARNESS=codex`) no
longer works. Switch to `--harness codex-sdk` for first-party,
in-process Codex SDK execution. `codex-sdk` remains the default,
so most users are unaffected.

- Delete `codex-cli.ts` and `process-harness.ts`; keep
  `process-runner.ts` for the OpenProse skill installer
- Trim `codex-options.ts` to SDK-shaped helpers
- Drop `codex` from the smoke script and CI matrix
- Align README, post-release playtest, and package metadata
2026-05-04 10:57:03 -07:00
irl-dan 5e1d5b49e2 chore: prepare CLI 0.2.5 release v0.2.5 2026-05-04 10:07:35 -07:00
irl-dan 779cd35c8e fix: namespace CLI release tags 2026-05-04 10:04:25 -07:00
dan 53aa3b12e6 chore: prepare CLI 0.2.0 release 2026-05-04 09:57:48 -07:00
dan 012650a201 [codex] Prepare OpenProse 0.12.0 responsibility runtime release (#57)
* Document native runtime skill semantics

* Rename native runtime to responsibility runtime

* Add responsibility runtime compiler skeleton

* Add responsibility compilation IR

* Compile Forme manifests into repository IR

* Serve static repository IR

* Tighten responsibility runtime review gaps

* Introduce OpenProse root model

* Harden OpenProse root resolution

* Add responsibility judge activation

* Add responsibility pressure fulfillment path

* Add repository status inspection

* Make triggers concrete gateway registrations

* Add live responsibility trigger adapters

* Refine responsibility runtime validation

* Harden responsibility runtime freshness

* Tighten responsibility runtime guardrails

* docs: replace skill examples with native repositories

* chore: release v0.12.0

* fix: tighten release review gaps
v0.12.0
2026-05-04 09:26:26 -07:00
Jose Montes de Oca e4892c039d chore: relocate prose-cli to tools/cli/ (#54)
Moves `@openprose/prose-cli` from `cli/` to `tools/cli/` and seeds a
`tools/` convention at the repo root for shippable tooling published as
standalone artifacts. Package internals are unchanged — only paths
outside the package that hard-code the `cli/` segment were updated.

## What changed

- `git mv cli tools/cli` — package files render as 100%-similarity
  renames, so `git log --follow` is preserved.
- `.github/workflows/cli-publish.yml`,
  `.github/workflows/cli-release-check.yml`, and
  `.github/workflows/cli-real-harness-smoke.yml`: every literal `cli/`
  path (`paths:`, `working-directory:`, `cache-dependency-path:`,
  artifact `path:`, and inline `node`/`bash` invocations) now points
  at `tools/cli/`. `cli-skills-smoke.yml` had no `cli/` references and
  is untouched.
- `tools/cli/package.json`: `repository.directory` and `homepage` flip
  to `tools/cli` so the npm registry "Repository" link resolves.
- `README.md`: the badge nav, the prose-layout paragraph, and the repo
  layout table now point at `tools/cli/`, plus a new `tools/` row
  introducing the convention.
- `RELEASE.md`: cross-references to `cli/RELEASE.md` updated.
- `tools/cli/README.md`, `tools/cli/RELEASE.md`,
  `tools/cli/POST_RELEASE_PLAYTEST.md`: public installer URL updated to
  `https://raw.githubusercontent.com/openprose/prose/main/tools/cli/install.sh`.
2026-05-01 17:15:34 -07:00
irl-dan d68de6a2ce chore: prepare CLI 0.1.4 release v0.1.4 2026-05-01 13:21:05 -07:00
irl-dan 15f9d6d9f3 Avoid plugin release on non-plugin tags 2026-05-01 13:19:55 -07:00
irl-dan 62e9eb293c chore: release v0.11.0 v0.11.0 2026-05-01 13:18:07 -07:00
dan 624e75ad89 Refresh OpenProse skill conventions (#51)
* Refresh OpenProse skill conventions

* Align OpenProse skill with service system conventions

* Fix OpenProse PR review inconsistencies

* Clarify OpenProse state backend loading

* Enforce OpenProse smoke run state gate
2026-05-01 15:06:40 -04:00
dan ef0173ba21 Document CLI post-release playtest process (#52) 2026-05-01 03:15:27 -04:00
dan 11ff16eed8 Prepare CLI 0.1.3 release v0.1.3 2026-04-30 23:09:50 -07:00
dan 4934dcdd62 Allow Codex harnesses outside git repos (#49)
* Allow Codex harnesses outside git repos

* Document CLI provider selection

* Remove local Claude CLI harness
2026-05-01 01:58:15 -04:00
dan 9d34a1184e Prepare CLI 0.1.2 release (#48) v0.1.2 2026-05-01 00:22:18 -04:00
dan 911b030981 Preload OpenProse skill in CLI harnesses (#47) 2026-05-01 00:15:22 -04:00
Jose Montes de Oca 93e91325d7 feat: ship OpenProse as first-class Claude + Codex plugin (#46)
OpenProse already installed as a Claude Code plugin via
`npx skills add openprose/prose`, but the packaging surface was
uneven: missing manifest fields, no native Codex envelope, no
plugin-track release process, and a couple of doc/audience
inconsistencies. This commit closes those gaps without changing
skill behavior.

OpenProse now ships from the repo root as a dual-host plugin
envelope — `.claude-plugin/` for Claude Code, `.codex-plugin/`
plus `.agents/plugins/` for Codex — with `skills/open-prose/`
as the shared core and `prose ...` as the only user-facing
command surface.

Codex envelope:
- .codex-plugin/plugin.json with first-class catalog metadata
  (displayName, developer, descriptions, category, capabilities,
  defaultPrompt, privacy/terms URLs).
- .agents/plugins/marketplace.json local-source catalog, installable
  by anyone who clones this repo.

Claude Code manifest hygiene:
- Added license, homepage, and skills: ./skills so the plugin is
  self-describing.
- Added marketplace.json metadata.description, clearing the sole
  `claude plugin validate` warning.
- Deleted the stale .claude-plugin/README.md.

Skill metadata:
- Added license: MIT to skills/open-prose/SKILL.md frontmatter
  (no top-level version — Claude Code strips unrecognized top-level
  frontmatter keys; see anthropics/claude-code#13005).
- Fixed an inconsistent parse-table cell pair in
  skills/open-prose/deps.md.

Audience boundaries:
- AGENTS.md is now contributor-only per agents.md.
- Recommended consumer [agents] Codex config moved to README.md
  alongside the Quickstart.

Release process:
- scripts/bump-version.sh + .version-bump.json bump both manifests
  atomically, with a --check mode for CI. The Claude Code
  marketplace deduplicates by version, so a forgotten bump silently
  strands users on cached copies; this gate prevents that.
- scripts/extract-changelog.sh pulls a single `## [X.Y.Z]` block
  out of CHANGELOG.md.
- RELEASE.md documents the manual flow.
- .github/workflows/release.yml verifies declared versions match
  on `v*` tag push and publishes a GitHub Release.

CI:
- New plugin-manifest.yml: every-PR gate validating both plugin.json
  files, asserting declared skills paths resolve, and running
  bump-version.sh --check.
- cli-skills-smoke.yml: added `npx skills list openprose/prose`
  discoverability check alongside the existing install smoke.
- openprose-smoke/run.ts: removed a dead commands/prose-*.md regex.
2026-04-30 20:31:48 -07:00
Jose Montes de Oca fb5c174ad2 chore: remove stale Claude Code slash command bundle (#45)
The seven prose-* slash commands in prose/commands/ were never wired into
any plugin manifest, marketplace listing, or repo README, and they framed
themselves as "the primary Claude Code interface for the OpenProse VM"
while shipping stale terminology (Task tool, narration emoji markers,
.prose/state.json) that no code path reads or writes.

The open-prose skill at prose/skills/open-prose/SKILL.md is now the sole
authoritative router for prose <verb> across every agent host, making
the slash-command shim redundant and misleading.
2026-04-30 18:00:46 -07:00
dan 1fad4be04e Prepare CLI 0.1.1 release (#43) v0.1.1 2026-04-29 20:31:10 -07:00
dan 4381b441c9 Merge pull request #41 from openprose/codex/prose-cli
[codex] add prose cli
2026-04-29 20:22:17 -07:00
irl-dan c59b27de90 Configure Codex smoke sandbox 2026-04-29 20:18:41 -07:00
irl-dan 7ccdd25d0e Map OpenAI keys for Codex harnesses 2026-04-29 20:12:44 -07:00
irl-dan 0935749874 Initialize real harness smoke workspaces 2026-04-29 20:07:57 -07:00
irl-dan 26fcc7a40d Polish CLI publish dry runs 2026-04-29 20:03:22 -07:00
irl-dan a4a9c484d2 Add CLI publish workflow 2026-04-29 19:41:15 -07:00
irl-dan ed457a8eb5 Run real harness smoke for CLI PRs 2026-04-29 19:24:50 -07:00
Jose Montes de Oca 66446fb0f6 chore(ci): add a smoke CI gate for the OpenProse skill (#42)
Add a required smoke CI path for the `open-prose` skill.

- Add focused smoke fixtures for core OpenProse execution behavior.
- Add a TypeScript runner that installs the PR skill into isolated workspaces and validates `.prose/runs/` outputs.
- Add a GitHub Actions workflow with read-only permissions, fork safety, pinned tooling, artifact capture, and hardened Claude Code invocation.
- Validate the suite with both dry-run checks and a local live `9/9` smoke run.
2026-04-29 19:21:54 -07:00
irl-dan 7403672b5f Expand CLI release checks 2026-04-29 19:17:03 -07:00
irl-dan 585c088e47 Address CLI review comments 2026-04-29 18:38:39 -07:00