Commit Graph

153 Commits

Author SHA1 Message Date
irl-dan 770ae2b9fa expand skills docs, add RFCs and std README
Elaborate forme/prose/memory skill docs with fuller guidance, and seed
rfcs/ (scheduled execution, feedback loops, env declaration, composite
instantiation) plus a std/ README stub.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 12:31:21 -07:00
irl-dan d6e9c64c82 feat: add run as first-class keyword type in the contract system
Introduces `run` and `run[]` as recognized value types in `requires:` declarations,
enabling provenance tracking, DAG reconstruction, fan-in composition, and staleness
detection across agent workflows.

Spec changes (prose.md, forme.md, state/filesystem.md, SKILL.md):
- VM validates run-typed inputs (existence, completion, structure)
- Writes structured metadata bindings with run ID, path, program, status
- Records `upstream:` and `program:` in state.md headers for provenance
- Staleness detection compares program.md snapshot against current source
- Cross-project resolution: bare ID (local), ~/{id} (user), absolute path
- `prose status --graph` command (sugar for std/ops/graph)
- Forme treats run-typed requires as external caller inputs (not auto-wired)
- Recursive Forme invocation for kind:program services
- Declared-but-unused service lint warning
- ASCII `->` documented as valid fallback for `→` in event markers

Std library updates (all 7 programs):
- inspector: run-path → subject: run
- calibrator: run-paths → runs: run[], removed "recent" magic value
- profiler: run-path → runs: run[], removed "recent"
- cost-analyzer: run-path → runs: run[], removed "recent"
- error-forensics: run-path → subject: run
- program-improver: run-path → subject: run, inspection-path → inspection: run
- vm-improver: inspection-path → inspection: run

Deletes the RFC (guidance/rfc-run-type.md) — feature is now implemented.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:24:16 -07:00
irl-dan 9699eb5bb8 fix: resolve internal consistency issues across skill files
- SKILL.md: update stale .prose extensions to .md/directories, fix "v0 format" claim, add prose update to command routing
- state/filesystem.md: add test evaluation markers ([eval] ✓/✗, ---test PASS/FAIL)
- prose.md: add prose install to CLI command table
- guidance/patterns.md: fix compiler.md ref to v0/compiler.md, fix v1/v2 labels to legacy/declarative

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:01:42 -07:00
irl-dan b6c218c3dc fix: close spec-to-skill gaps — declarative each, env security, delegation markers, help.md, mode:contract removal
- prose.md: add `each` postcondition evaluation section
- forme.md: add `each` recognition in Step 4b, add environment security constraint, remove mode:contract from test wiring
- guidance/patterns.md: add declarative-each pattern with before/after examples
- state/filesystem.md: add runtime delegation markers, __delegate/ directory, write ownership
- help.md: rewrite with v1 contract syntax as primary, v0 as legacy subsection, update examples to ~50

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 09:45:47 -07:00
irl-dan 80fb1dc0a1 RFC: run as a first-class type in the contract system
Propose making `run` a value type in requires/ensures contracts so the VM
can track provenance edges between runs, reconstruct DAGs, detect staleness,
and support fan-in composition (run[]).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 09:08:49 -07:00
irl-dan 677b1654b5 feat: update CLI commands, add environment to contract surface
- SKILL.md: route lint, preflight, inspect, status as sugar for std programs
- prose.md: add environment: as sixth contract section with VM verification
- forme.md: propagate environment declarations through wiring to manifest
- help.md: update command reference
- Replace prose-compile with prose-lint, add preflight/inspect/status commands
- Remove compile, wire, migrate, eval as top-level commands

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 20:06:20 -07:00
irl-dan bc170f978a Merge branch 'feat/deps-system' 2026-04-06 17:46:58 -07:00
irl-dan 66d64baded Add git-native dependency resolution system
New file:
- deps.md — authoritative spec for dependency resolution via GitHub repos

Updated files:
- SKILL.md — prose install command routing, .deps/ and prose.lock in file locations
- forme.md — .deps/ as resolution step 3 with path mapping examples
- state/filesystem.md — .deps/ and prose.lock in directory structure
- help.md — install commands, quick start, FAQ
- guidance/patterns.md — dependency-management and std-shorthand patterns
- guidance/antipatterns.md — unpinned-dependencies and vendored-copies

Key design decisions:
- GitHub is the registry (no custom server)
- prose.lock is plaintext (owner/repo sha), committed to git
- .deps/ is gitignored, reproducible from prose.lock
- std/ is shorthand for openprose/std/
- Transitive deps via multi-pass with cycle detection
- Version conflicts auto-resolve to newer SHA with warning
- Explicit prose install required (no auto-install on prose run)

Standard library programs migrated to github.com/openprose/std

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 17:43:35 -07:00
Aleksandr Lozhkovoi 6f24be7efc Add Codex support docs and entrypoint 2026-03-29 12:44:44 +02:00
Apollo 373ff36181 docs: add experimental Codex adapter examples
Why: OpenProse maps well onto Codex subagents, but Codex users need explicit docs and example files for recursive execution, alias resolution, and audit-role fanout without relying on machine-local configuration.
2026-03-26 23:08:26 +09:00
Raymond Weitekamp 1a0aa4a815 feat: add deterministic linter (tools/lint/)
Rust-based linter for OpenProse programs. Supports both legacy .prose
files and .md programs.

Legacy (.prose):
- Structure, syntax, string literals, escape sequences (E002)
- Agent definitions and references
- Property, permission, skill validation
- Prompt hygiene, output validation (E023)
- Legacy syntax detection

.md programs:
- YAML frontmatter validation
- Component and contract section parsing
- Heading classification (components vs state schemas vs docs)
- Multi-file program directory auto-detection
- Contract completeness observations

Spec discovery:
- discover command reports corpus patterns not covered by spec
- Role/delegation correlation, API/prohibited overlap, state coherence

build.rs reads skills/open-prose/compiler.md for vocabulary extraction.
Tests validate against skills/open-prose/examples/.
22 tests, 0 failures.
2026-03-25 09:36:44 -04:00
irl-dan 03c5215704 fix: move lib/migrate to skills/open-prose/lib/migrate
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.9.0
2026-03-23 15:10:14 -04:00
irl-dan b94f58e501 docs: update README, CHANGELOG, and version for v2 launch (0.9.0)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:09:31 -04:00
irl-dan 769ac9152e feat: upgrade lib/ programs to high-quality Prose v2
All 9 lib/*.md programs now have full v2 contracts:
- requires/ensures with detailed descriptions
- errors sections for failure modes
- strategies for non-obvious execution guidance
- invariants for correctness constraints
- inline ## service definitions for multi-service programs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:09:30 -04:00
irl-dan cd9a91a122 feat: add lib/migrate — multi-pass .prose to .md conversion program
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:07:42 -04:00
irl-dan 03832c75cd chore: remove all legacy .prose files — v2 .md format is now canonical
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:06:16 -04:00
irl-dan ccd5d5f54a fix: update relative paths after move into platform as submodule 2026-03-23 14:25:33 -04:00
irl-dan 1f42e4a64d feat: v2 migration — remove websh, alts, commons; restructure for forme 2026-03-23 13:57:59 -04:00
irl-dan c5b8212ade docs: update examples README for v2 migration
List all migrated v2 examples organized by category, note the
v1-archive, and add counts: 35 migrated, 15 archived, 5 new.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:17:38 -04:00
irl-dan 420401381a feat: migrate lib/ programs to Prose v2
Migrate all 9 library programs: inspector, calibrator, cost-analyzer,
error-forensics, profiler, program-improver, vm-improver, project-
memory, and user-memory. Each becomes a .md file with contracts,
services lists, and appropriate persistence declarations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:17:32 -04:00
irl-dan 0f52035e95 feat: add v2-native examples (test, registry, wiring, multi-file, composites)
Five new examples demonstrating v2-only features:
- test-demo.md: kind: test with fixtures and expects
- registry-import/: importing services from p.prose.md
- wiring-declaration.md: Level 2 explicit ### Wiring section
- multi-service-single-file.md: ## heading delimiters
- composites-demo/: worker-critic composite pattern

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:17:24 -04:00
irl-dan 61acc58b5e chore: archive retired v1 examples (15 programs)
Move 15 retired .prose files to v1-archive/: 05 (debug-issue),
06 (explain-codebase), 07 (refactor), 08 (blog-post), 10 (code-review-
agents), 14 (composition-blocks), 15 (inline-sequences), 17 (parallel-
research), 18 (mixed-parallel-sequential), 19 (advanced-parallel),
20 (fixed-loops), 21 (pipeline-operations), 26 (parameterized-blocks),
27 (string-interpolation), 31 (captains-chair-with-memory).

Also moves roadmap/ directory to v1-archive/roadmap/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:17:12 -04:00
irl-dan 8fa40c9010 feat: migrate remaining examples to Prose v2
Code review (03), feature demos (11, 12, 13), PR workflows (32, 33),
bug hunter (36), skill scanner (38), UX test (44), plugin release (45),
workflow crystallizer (46), habit miner (48), retrospective (49), and
interactive tutor (50).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:17:01 -04:00
irl-dan a0b7a26ae3 feat: migrate Wave 3 examples to Prose v2 (29, 35, 37, 39, 47)
Complex execution-block programs: captain's chair full (29), feature
factory (35), The Forge browser build (37), architect by simulation
(39), and language self-improvement (47). All use Level 3 execution
blocks with explicit let/call control flow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:16:52 -04:00
irl-dan 46f7acf075 feat: migrate Wave 2 examples to Prose v2 (22-25, 30, 34, 41-43)
Error handling with conditional ensures (22), strategies for retry/
backoff (23), conditional ensures for choice blocks (24) and
conditionals (25), captain's chair with shapes (30), content pipeline
(34), and RLM patterns: divide-conquer (41), filter-recurse (42),
pairwise (43).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:16:46 -04:00
irl-dan ae8899a61a feat: migrate Wave 1 examples to Prose v2 (01, 02, 04, 09, 16, 40)
Single-service programs (01 hello-world, 02 research-and-summarize,
04 write-and-refine), multi-service auto-wired programs (09 research-
with-agents, 16 parallel-reviews), and worker-critic composite
(40 rlm-self-refine).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:16:39 -04:00
irl-dan d7c3ef43c7 docs: add READMEs across all directories; document profiler.prose in lib
Index run scaffolded new READMEs for all subdirectories. Review run
added the missing profiler.prose entry to skills/open-prose/lib/README.md
(cost, token usage, and time profiling for completed runs).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 09:29:20 -04:00
irl-dan 35b3b606f4 prefer npx skills add instead of current skills add 2026-02-20 15:23:22 -05:00
dan c5780e0c49 Merge pull request #15 from bucko13/patch-1
Update examples link in README.md
2026-02-02 14:52:07 -05:00
irl-dan fce7306c74 feat: add agent-directed attention markers and post-execution guidance
- Add ◇ attention markers for Anthropic models throughout SKILL.md
- Add install instructions for remote readers at top
- Expand "You are the Prose Complete system" with explicit capability framing
- Add Post-Execution section with guidance for success/failure cases
- Create SOUL.md template for agents to persist OpenProse awareness
- Add SOUL.md to file locations table

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 10:37:25 -05:00
irl-dan 8593c7d5f4 feat(common): add Constellation Commons - 18 programs for distributed participation
The Constellation Commons is a collection of programs that participate in,
maintain, and evolve the distributed Constellation system.

Participation:
- holon.prose: Core participant - witnesses and manifests peer programs
- beacon.prose: Persistent presence - emits regular signals
- swarm.prose: Fan-out manifestation - launches multiple Holons

Discovery:
- observatory.prose: Passive observation and synthesis
- seeker.prose: Pattern search by owner, keyword, status, ID, or program
- registry.prose: Program browser - lists featured, browses public, fetches source
- curator.prose: Surfaces quality - assembles curated collections

Creation:
- publisher.prose: Writes and publishes programs to @handle/slug
- pollinator.prose: Spreads good patterns across the ecosystem

Governance:
- sentinel.prose: Security watcher - monitors for malicious patterns
- arbiter.prose: Dispute resolution - examines conflicts
- auditor.prose: Quality review against standards

History & Maintenance:
- chronicler.prose: Writes history narratives
- gardener.prose: Tends the ecosystem - survey, weed, nurture, prune

Economics:
- assessor.prose: Values programs using utility/quality/market framework
- bounty.prose: Posts rewards for solving problems

Foresight & Reflection:
- prophet.prose: Predicts trends, issues warnings
- philosopher.prose: Contemplates principles

Also updates lib/README.md to reference common/ for Constellation programs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 16:56:14 -05:00
irl-dan 601bbd7943 docs: support both @ and non-@ registry syntax
Both syntaxes now resolve to the same URL:
- irl-danb/habit-miner → https://p.prose.md/irl-danb/habit-miner
- @irl-danb/habit-miner → https://p.prose.md/irl-danb/habit-miner (@ stripped)

Backwards compatible with existing @ syntax.
2026-01-24 16:30:41 -05:00
irl-dan cb661a9a0d feat(websh): eager link crawl - prefetch pages 2 layers deep
After fetching a page, websh now automatically prefetches linked pages
in the background. This makes `follow` and navigation feel instant
since content is already cached when needed.

- Add state/crawl.md with full crawl agent design
- Add prefetch, crawl, queue commands
- Configure via EAGER_CRAWL, CRAWL_DEPTH, CRAWL_SAME_DOMAIN env vars
- Priority: earlier links, same-domain, main content first
- Respects rate limits and robots.txt

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 16:00:02 -05:00
irl-dan e19d9b1a66 fix(websh): hacker news as canonical first destination
- HN is first in all suggestion lists
- Tab completion should suggest `cd https://news.ycombinator.com` first
- Added note: HN is the "hello world" of websh
- Updated example session to reflect async flow

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 11:13:50 -05:00
irl-dan 80017f0f0f docs(websh): emphasize async-first architecture
Core principle: main thread never blocks.

All heavy operations delegate to background haiku subagents:
- Network fetches
- HTML parsing / extraction
- Content processing
- Multi-page operations (find, crawl, tar)
- Initialization
- Monitoring (watch)

User always gets prompt back instantly. Commands gracefully
degrade if background work isn't complete.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 11:08:43 -05:00
irl-dan 20da288678 fix(websh): fully async cd, curate bookmarks
cd is now fully async:
- User gets prompt back immediately with "(fetching...)"
- Background haiku task does fetch + extract
- Never blocks the main thread
- Commands gracefully degrade if content not ready

Curated bookmarks (removed mainstream news):
- hn, lobsters, tildes, wiby, marginalia, wiki, sourcehut, are.na

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 11:04:09 -05:00
irl-dan 40fbdec6e6 fix(websh): intelligent empty states, starter bookmarks
- No more bare "error: no page loaded" - suggest sites to visit
- Pre-populated bookmarks: hn, wiki, lobsters, tildes, npr, cnn, wiby
- Pre-populated aliases for quick navigation
- Helpful hints in empty states instead of "(none)"
- All suggested sites are public/accessible (no walled gardens)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 11:01:14 -05:00
irl-dan b2e23a859e fix(websh): async initialization - don't block on setup
Spawn background haiku task for workspace init.
User sees banner + prompt immediately, can start typing.
Commands work gracefully with empty defaults until init completes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 10:57:54 -05:00
irl-dan 6ba77f80c5 feat: add websh skill - a shell for the web
A Unix-like shell for navigating and querying the web:
- URLs as paths, DOM as filesystem
- 80+ commands: ls, cat, grep, find, mount, watch, etc.
- Async haiku extraction for rich cached content
- Job control, environment, mounting APIs
- Natural language support - infers intent for unknown commands

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 10:51:40 -05:00
irl-dan a3df95a78e chore: release v0.8.1
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v0.8.1
2026-01-23 10:24:29 -05:00
irl-dan c69d298dda perf: improve state tracking token efficiency
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 10:24:14 -05:00
irl-dan 861aa3d3b5 chore(release): v0.8.0
- Add CHANGELOG.md documenting all changes since v0.7.1
- Update plugin.json version to 0.8.0
- Reorganize example files (rename 28 -> 32, remove deprecated variants)
- Update examples README with new file references

Key changes in v0.8.0:
- 7 new library programs (memory, analysis, improvers)
- Simplified registry syntax (@ prefix removed) - BREAKING
- Telemetry system removed
- Enhanced skill security scanner v2

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 09:27:36 -05:00
irl-dan eec7037dc3 refactor(open-prose): remove telemetry system
Telemetry was collecting anonymous usage analytics but is no longer needed.
Removes all telemetry-related code, config, and documentation including
USER_ID/SESSION_ID tracking, analytics endpoint calls, and migration steps
for legacy telemetry state files.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 08:23:43 -05:00
irl-dan fe0035d35a add interactive example 2026-01-22 20:51:44 -05:00
buck 54722504e4 Update examples link in README.md 2026-01-22 11:56:24 -06:00
irl-dan 4f5c2e61da add system-prompt 2026-01-21 10:36:16 -05:00
irl-dan e290da0173 feat(lib): add memory and analysis programs
Memory programs (recommend sqlite+ backend):
- user-memory.prose: Cross-project persistent personal memory
  with teach/query/reflect modes
- project-memory.prose: Project-scoped institutional memory
  with ingest/query/update/summarize modes

Analysis programs:
- cost-analyzer.prose: Token usage and cost pattern analysis
  with single/compare/trend scopes
- calibrator.prose: Validates light vs deep evaluation reliability
- error-forensics.prose: Root cause analysis for failed runs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:53:07 -05:00
irl-dan 0391894f01 feat(lib): add vm-improver and program-improver programs
Adds two new programs to the standard library that complete the
recursive improvement loop:

- vm-improver.prose: Analyzes inspection reports and proposes PRs
  to improve the OpenProse VM specification and implementation

- program-improver.prose: Analyzes inspection reports and proposes
  PRs to improve .prose source code (either in lib/ or external)

Together with inspector.prose, these enable a feedback cycle where
execution data drives improvements to both the VM and programs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:17:07 -05:00
irl-dan d3a12e0c9b docs: simplify registry syntax - remove @ requirement
Registry references no longer require the @ prefix:
- `prose run irl-danb/habit-miner` (was: @irl-danb/habit-miner)
- `use "alice/research"` (was: "@alice/research")

Resolution rules updated:
- http:// or https:// → fetch directly
- Contains `/` but no protocol → resolve to p.prose.md
- Otherwise → local file path

Also includes user-scoped persistent agents (~/.prose/agents/).
2026-01-19 13:18:02 -05:00
irl-dan bb8e299047 feat(examples): improve skill security scanner with v2 patterns
- Add progressive disclosure: quick triage before deep scan
- Model tiering: Sonnet for checklist work, Opus for hard analysis
- Parallel scanners with graceful degradation (on-fail: continue)
- Persistent historian agent for scan history across runs
- Customizable inputs: mode (quick/standard/deep), focus, skill_filter
- Reusable blocks for scan workflow components
- Structured JSON output contracts for all agents
- Early alerting for critical findings mid-scan
- Batched processing to respect parallelism limits
2026-01-18 15:31:15 -05:00