Repository navigation
Launch prep: README proof + install path, tone cleanup, CONTRIBUTING, PyPI metadata #19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| # Contributing to Fable Mode | ||
|
|
||
| Issues and pull requests are welcome. This project is MIT licensed and | ||
| dependency-free at runtime; please keep it that way. | ||
|
|
||
| ## Development setup | ||
|
|
||
| ```bash | ||
| git clone https://github.com/REX-codebase/fable-mode.git | ||
| cd fable-mode | ||
| python -m venv .venv && source .venv/bin/activate | ||
| pip install -e . pytest | ||
| ``` | ||
|
|
||
| ## Running the tests | ||
|
|
||
| ```bash | ||
| python -m pytest -q | ||
| ``` | ||
|
|
||
| The suite currently holds 473 tests and should stay green on Linux, macOS, | ||
| and Windows (see `.github/workflows/test.yml`). A change that breaks a test | ||
| is not ready, and a new behavior without a test is not done. | ||
|
|
||
| ## What makes a good contribution | ||
|
|
||
| - **Small, explained diffs.** Say what changes and why, in the PR body. | ||
| - **Evidence, not vibes.** Fable Mode is about verifiable claims; include | ||
| test output, a receipt, or a repro for behavior changes. | ||
| - **Adversarial mindset.** If you touch the proof engine, time-lock, or | ||
| red-team logic, describe how the change could be gamed and why it cannot. | ||
| - **No new runtime dependencies** without a discussion issue first. | ||
|
|
||
| ## Good first issues | ||
|
|
||
| Look for issues labeled `good first issue`. Documentation fixes, new test | ||
| cases for the verifier modules, and MCP client setup notes for other editors | ||
| are all great first contributions. | ||
|
|
||
| ## Reporting security issues | ||
|
|
||
| Please open a private security advisory (Security tab) instead of a public | ||
| issue for anything that weakens the time-lock, proof validation, or red-team | ||
| guarantees. | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -100,3 +100,44 @@ Hey — I’m working on Fable Mode, an open-source MCP control plane for coding | |||||
| ## Conversion improvements to measure | ||||||
|
|
||||||
| Track stars, forks, release downloads, README clicks into installation, issue quality, and the number of contributors who successfully run the canonical test suite. The most important near-term signal is not raw impressions; it is whether a technically serious visitor can understand the product, install it, and reproduce one evidence-gated workflow in under ten minutes. | ||||||
|
|
||||||
| ## Show HN post | ||||||
|
|
||||||
| **Title:** Show HN: Fable Mode – an MCP control plane that makes coding agents earn write access | ||||||
|
|
||||||
| I built Fable Mode because my coding agent kept doing the same thing: it would start editing files within seconds, produce a plausible patch, and only afterwards would I find out what it never checked. | ||||||
|
|
||||||
| Prompting it to "think harder" changed nothing. So I made deliberation a mechanical constraint instead of a request. | ||||||
|
|
||||||
| Fable Mode is an open-source (MIT) MCP server that puts four gates in front of the workspace: | ||||||
|
|
||||||
| 1. **Think** – a hard time-lock. The agent literally cannot write code until the deliberation budget elapses. Trying to unlock early raises a PermissionError, not a warning. | ||||||
| 2. **Prove** – claims must carry evidence: tool receipts, SHA-256 checksum chains, AST-grounded invariants. Tautologies are filtered out. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: #!/bin/bash
set -u
printf '%s\n' '--- candidate files ---'
git ls-files | rg '(^|/)(marketing/launch-kit\.md|.*[Ee]vidence.*|.*server.*|.*launch.*|.*proof.*|.*ast.*|.*tautolog.*|.*checksum.*)$' | head -200
printf '%s\n' '--- proof-control references ---'
rg -n -S -i 'SHA-?256|checksum|AST-grounded|AST|tautolog|successful receipt|content-hash|content hash|provenance|Evidence' --glob '!marketing/launch-kit.md' . | head -300Repository: REX-codebase/fable-mode Length of output: 33806 🏁 Script executed: #!/bin/bash
set -u
printf '%s\n' '--- marketing/launch-kit.md ---'
sed -n '108,120p' marketing/launch-kit.md
printf '%s\n' '--- fable_v2/protocol.py Evidence contract ---'
sed -n '120,245p' fable_v2/protocol.py
printf '%s\n' '--- fable_v2/runtime.py proof validation ---'
sed -n '630,725p' fable_v2/runtime.py
printf '%s\n' '--- fable_v2/proof_engine.py relevant definitions ---'
rg -n -A35 -B10 'class DeterministicProofValidator|def check_anti_tautology|def validate_ast|checksum|SHA-256|sha256' fable_v2/proof_engine.py
printf '%s\n' '--- runtime checksum and attestation definitions ---'
sed -n '450,475p' fable_v2/runtime.py
sed -n '740,770p' fable_v2/runtime.pyRepository: REX-codebase/fable-mode Length of output: 50379 🏁 Script executed: #!/bin/bash
set -u
printf '%s\n' '--- server entry points and runtime wiring ---'
rg -n -S 'fable_v2|FableRuntime|_gate_report|gate_report|DeterministicProofValidator|validate_file_sha256|proof_engine|verify\(' fable_engine/server.py fable_v2 fable_mode README.md pyproject.toml setup.py 2>/dev/null | head -240
printf '%s\n' '--- runtime commit/checksum sections ---'
sed -n '360,455p' fable_v2/runtime.py
sed -n '455,485p' fable_v2/runtime.py
sed -n '745,810p' fable_v2/runtime.py
printf '%s\n' '--- server implementation outline ---'
ast-grep outline fable_engine/server.pyRepository: REX-codebase/fable-mode Length of output: 17711 🏁 Script executed: #!/bin/bash
set -u
printf '%s\n' '--- package entry points ---'
sed -n '1,80p' pyproject.toml
sed -n '1,55p' setup.py
printf '%s\n' '--- fable_engine/server.py imports and tool dispatch ---'
sed -n '1,145p' fable_engine/server.py
sed -n '175,360p' fable_engine/server.py
printf '%s\n' '--- proof references in published server ---'
rg -n -S -i 'proof|evidence|receipt|sha256|checksum|tautolog|ast|fable_v2' fable_engine/server.pyRepository: REX-codebase/fable-mode Length of output: 15385 Narrow the proof claims to the published server.
Suggested change
🤖 Prompt for AI Agents |
||||||
| 3. **Attack** – a five-vector red-team swarm (chaos environment, Byzantine payloads, concurrency races, resource exhaustion, state invariants) tries to break the change. Unresolved breakages reject the milestone. | ||||||
| 4. **Write** – only then is the workspace unlocked, with a sealed record of what was verified. | ||||||
|
|
||||||
| Python 3.10+, zero runtime dependencies, works with Claude Code, Cursor, or anything that speaks MCP. 473 tests, CI on Linux/macOS/Windows. | ||||||
|
|
||||||
| What it is not: a claim of flawless code. It is a way to make "be careful" machine-checkable instead of advisory. | ||||||
|
|
||||||
| ## r/ClaudeCode post | ||||||
|
|
||||||
| **Title:** I got tired of my agent editing before thinking, so I built a mechanical lock for it (open source, MCP) | ||||||
|
|
||||||
| Body: same narrative as Show HN, trimmed, leading with the Claude Code setup line (`claude mcp add fable-engine -- python -m fable_engine.server`) and ending with a request for feedback on the proof engine design. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win Add complete Reddit post bodies. These lines contain authoring notes, not submission-ready drafts. Replace each note with the complete post text, including the setup command, feature summary, and feedback request for its target community. Also applies to: 133-133 🤖 Prompt for AI Agents |
||||||
|
|
||||||
| ## r/mcp post | ||||||
|
|
||||||
| **Title:** Fable Mode: an open-source MCP server that gates agent writes behind time-locks, evidence, and red-team review | ||||||
|
|
||||||
| Body: the tool-oriented version: create_session + set_timer, the evidence ledger ([HYPOTHESIS]/[PROVEN] with receipts), red_team_code_review with the five attack vectors, and the sealed session record. Ends asking the community which other attack vectors the red team should cover. | ||||||
|
|
||||||
| ## Launch checklist | ||||||
|
|
||||||
| - [ ] Embed the 30-second film at the top of the README (placeholder comment is in place) | ||||||
| - [ ] Publish `fable-engine` to PyPI, then switch the README install line to `pip install fable-engine` | ||||||
| - [ ] Submit server.json to the official MCP registry (`mcp-publisher publish`) | ||||||
| - [ ] PR to punkpeye/awesome-mcp-servers and modelcontextprotocol/servers (draft lines ready) | ||||||
| - [ ] Post Show HN (Tuesday-Thursday, morning US Eastern) | ||||||
| - [ ] Post r/ClaudeCode and r/mcp with the demo leading | ||||||
| - [ ] X post with the film attached, then the 3-post thread | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Add Windows activation instructions.
source .venv/bin/activatedoes not work in PowerShell orcmd.exe. Windows contributors cannot complete the documented setup flow. Add the PowerShell andcmd.exeactivation commands, or usepython -m pipcommands that do not require activation.🤖 Prompt for AI Agents