Extract registry pipeline into registry.py with .template.yaml manifest
(per-file SHA256 hashes) for three-way check/update. New workflow MCP tool
with 4 actions (search, install, check, update). CLI commands: gcontext
update and gcontext search. Hide .template.yaml from list_dir/grep/walk.
Re-register module commands on update. Build script for registry.json.
113 tests (24 new in test_workflow_tool.py).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Every workflow must ship commands/run.md that drives step-by-step
execution and enforces the per-step folder structure in runs/. The
run command contract is added to the spec. share-workflow updated
to generate run.md during authoring and verify it at phase 5.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CLI command validates a local template folder against the workflow standard
(frontmatter, steps/, runs/example/), bundles files, and POSTs to the
marketplace API. --status mode queries GET /api/workflows/{id}/status.
16 new tests (suite 68 -> 84).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
docs/workflows.md defines the contract for distributable context-based
workflows: frontmatter manifest, steps/, runs/ with workflow-defined run
naming, the example run at runs/example/, and the setup command contract.
docs/share-workflow.md guides an author's agent through turning a lived
workflow into a template that passes that spec. Both linked from the README.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Expose built-in framework prompts alongside project commands/ files
in the /api/commands endpoint and Commands.jsx UI, grouped by owner.
- Tighten setup.md so approvals aren't re-asked for explicitly requested
items and agent.md is written without confirmation.
- Document commands/ folders and module portability rules in
framework-instructions.md; trim duplicated conventions from
docs/modules.md in favor of that single source.
One name per role: src/gcontext moves to gcontext/ (flat layout), the
instructions files split into framework-instructions.md (G0) and the
project's agent.md (G1). Adds the built-in describe-first setup prompt,
state files as MCP resources (gcontext://<path>), and --version.
Exec: run_script splits into run_script and run_adhoc_script; results are
plain readable text with a status line, output_schema=None on all six
tools kills the {"result": ...} wrapper. 100k-char stream caps.
Writes: connection.yaml is agent-writable (only secrets.env stays
blocked), write_file returns a unified diff and warns on index.md drift,
and the instructions require user approval before every write. New
learn-from-errors rule records fail-then-fix lessons where they belong.
Fixes: secrets.load() strips surrounding quotes (quoted tokens caused
misleading 401s). Tests: 61 passing.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Corrected the number of tools available to connected clients in README.md from six to five.
- Updated design.md to clarify the context ledger and its components.
- Revised modules.md to reflect changes in how modules are discovered and interacted with.
- Adjusted references to the `overview()` tool, replacing it with `list_dir()` in various documentation files.
- Removed the now obsolete `overview` tool from the codebase and updated related tests accordingly.
- Enhanced user interface components in the web application, including the addition of new sections for commands and connections.
- Introduced a new CopyPrompt component for easier prompt copying across the application.
These changes improve clarity and usability for developers interacting with the gcontext framework.
State changes (from the maat-agent spikes):
- run_script runs saved scripts by path with args and params (PARAM_<NAME>
env vars), plus ad-hoc code; results start with a status header and a
missing-package hint points at connection.yaml deps
- commands/ folders in connections and modules register as MCP prompts
(<owner>__<command>), surfaced as slash commands; .md and .py formats
- instructions.md is pushed at connect through the MCP handshake and
declared as ledger pipe G0: one controllable file is what the agent
receives at start
- read_context/write_context renamed to read_file/write_file; new list_dir
and grep tools
- stateless HTTP: server restarts no longer strand attached clients
Removed:
- flows (never met a real use case; modules plus commands cover process
needs; design.md records the return condition)
- gcontext chat (redundant once the handshake delivers instructions); the
controlled claude invocation is documented in the README instead
- docs/templates (duplicated README sections)
- the ledger's dual chat/mcp mode, collapsed to one
Structure:
- server.py is only the MCP surface; concerns split into fs.py, exec.py,
secrets.py, state.py, ledger.py, commands.py; agent-facing tool text
lives in prompts/tools/*.md
- read-only web dashboard served at the root: overview, ledger, files,
live activity feed (web/ Vite app, bundled into the wheel)
- secrets.env is now unreadable through the agent (read guard)
39 tests. Version 0.4.0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Migrates the curated material from the private lab repo: docs/design.md
(the decisions behind the framework), docs/modules.md (portable modules),
and examples/ops-agent (a grown agent folder with connections, modules,
a flow, and an archived module). README links all of it.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>