83 lines
1.7 KiB
Markdown
83 lines
1.7 KiB
Markdown
|
|
# Crucible First Cut
|
||
|
|
|
||
|
|
This is the first narrow neuro-symbolic slice for Timmy.
|
||
|
|
|
||
|
|
## Goal
|
||
|
|
|
||
|
|
Prove constraint logic instead of bluffing through it.
|
||
|
|
|
||
|
|
## Shape
|
||
|
|
|
||
|
|
The Crucible is a sidecar MCP server that lives in `timmy-config` and deploys into `~/.hermes/bin/`.
|
||
|
|
It is loaded by Hermes through native MCP discovery. No Hermes fork.
|
||
|
|
|
||
|
|
## Templates shipped in v0
|
||
|
|
|
||
|
|
### 1. schedule_tasks
|
||
|
|
Use for:
|
||
|
|
- deadline feasibility
|
||
|
|
- task ordering with dependencies
|
||
|
|
- small integer scheduling windows
|
||
|
|
|
||
|
|
Inputs:
|
||
|
|
- `tasks`: `[{name, duration}]`
|
||
|
|
- `horizon`: integer window size
|
||
|
|
- `dependencies`: `[{before, after, lag?}]`
|
||
|
|
- `max_parallel_tasks`: integer worker count
|
||
|
|
|
||
|
|
Outputs:
|
||
|
|
- `status: sat|unsat|unknown`
|
||
|
|
- witness schedule when SAT
|
||
|
|
- proof log path
|
||
|
|
|
||
|
|
### 2. order_dependencies
|
||
|
|
Use for:
|
||
|
|
- topological ordering
|
||
|
|
- cycle detection
|
||
|
|
- dependency consistency checks
|
||
|
|
|
||
|
|
Inputs:
|
||
|
|
- `entities`
|
||
|
|
- `before`
|
||
|
|
- optional `fixed_positions`
|
||
|
|
|
||
|
|
Outputs:
|
||
|
|
- valid ordering when SAT
|
||
|
|
- contradiction when UNSAT
|
||
|
|
- proof log path
|
||
|
|
|
||
|
|
### 3. capacity_fit
|
||
|
|
Use for:
|
||
|
|
- resource budgeting
|
||
|
|
- optional-vs-required work selection
|
||
|
|
- capacity feasibility
|
||
|
|
|
||
|
|
Inputs:
|
||
|
|
- `items: [{name, amount, value?, required?}]`
|
||
|
|
- `capacity`
|
||
|
|
|
||
|
|
Outputs:
|
||
|
|
- chosen feasible subset when SAT
|
||
|
|
- contradiction when required load exceeds capacity
|
||
|
|
- proof log path
|
||
|
|
|
||
|
|
## Demo
|
||
|
|
|
||
|
|
Run locally:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
~/.hermes/hermes-agent/venv/bin/python ~/.hermes/bin/crucible_mcp_server.py selftest
|
||
|
|
```
|
||
|
|
|
||
|
|
This produces:
|
||
|
|
- one UNSAT schedule proof
|
||
|
|
- one SAT schedule proof
|
||
|
|
- one SAT dependency ordering proof
|
||
|
|
- one SAT capacity proof
|
||
|
|
|
||
|
|
## Scope guardrails
|
||
|
|
|
||
|
|
Do not force every answer through the Crucible.
|
||
|
|
Use it when the task is genuinely constraint-shaped.
|
||
|
|
If the problem does not fit one of the templates, say so plainly.
|