Commit Graph

31 Commits

Author SHA1 Message Date
Raymond Weitekamp 7f68e0b378 ci: discover smoke harness models 2026-05-15 11:04:17 -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
dan d9aed223d2 fix responsibility runtime serve feedback (#65) 2026-05-04 22:20:39 -07:00
dan c20879fe06 chore: unify OpenProse release flow (#63) 2026-05-04 17:26:28 -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 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
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 15f9d6d9f3 Avoid plugin release on non-plugin tags 2026-05-01 13:19:55 -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 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 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
dan 1fad4be04e Prepare CLI 0.1.1 release (#43) 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 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 42b1687e18 refine prose cli architecture 2026-04-29 17:23:52 -07:00
irl-dan 668aa2c3b3 add prose cli 2026-04-29 16:11:21 -07:00
irl-dan db66354e06 ci: update longcot-rlmify workflow with thinking input
Picks up the thinking choice input and RLMIFY_THINKING env wiring
from rlm-harness-skill so gh workflow run can pass -f thinking=<level>.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 04:33:25 -07:00
irl-dan b7e4b99b31 ci: add longcot-rlmify workflow dispatcher
Lets gh workflow run discover the rlmified LongCoT smoke workflow.
The shim, example, and skills/rlmify/ live on the rlm-harness-skill
branch; workflow_dispatch --ref rlm-harness-skill checks them out
at run time.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 16:00:45 -07:00
irl-dan 18b3579ddc ci: add LongCoT benchmark workflow + pi-mono shim
workflow_dispatch action that runs the LongCoT benchmark using
pi-mono (@mariozechner/pi-coding-agent) as the inference harness.
Defaults (difficulty=longcot, thinking=high, no tools/scaffolding,
2 retries) mirror the paper for 1:1 result comparison; README
covers iteration with longcot-mini + slice inputs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 14:50:16 -07:00