microwave-method 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- microwave_method-0.1.0/.gitattributes +12 -0
- microwave_method-0.1.0/.github/workflows/gates.yml +34 -0
- microwave_method-0.1.0/.gitignore +8 -0
- microwave_method-0.1.0/CODEOWNERS +10 -0
- microwave_method-0.1.0/CONTRIBUTING.md +31 -0
- microwave_method-0.1.0/LICENSE +21 -0
- microwave_method-0.1.0/NOTICE.md +35 -0
- microwave_method-0.1.0/PKG-INFO +228 -0
- microwave_method-0.1.0/README.md +215 -0
- microwave_method-0.1.0/SECURITY.md +28 -0
- microwave_method-0.1.0/docs/embodiment.md +55 -0
- microwave_method-0.1.0/docs/governance.md +74 -0
- microwave_method-0.1.0/docs/install.md +70 -0
- microwave_method-0.1.0/docs/method.md +87 -0
- microwave_method-0.1.0/docs/reference.md +117 -0
- microwave_method-0.1.0/embodiment/adapters/__init__.py +0 -0
- microwave_method-0.1.0/embodiment/adapters/linux.py +78 -0
- microwave_method-0.1.0/embodiment/adapters/macos.py +109 -0
- microwave_method-0.1.0/embodiment/adapters/windows.py +152 -0
- microwave_method-0.1.0/embodiment/embody.py +188 -0
- microwave_method-0.1.0/embodiment/icons/factory.png +0 -0
- microwave_method-0.1.0/embodiment/icons/librarian.png +0 -0
- microwave_method-0.1.0/flows/adopt.md +69 -0
- microwave_method-0.1.0/flows/amend-rule.md +31 -0
- microwave_method-0.1.0/flows/create-agent.md +49 -0
- microwave_method-0.1.0/flows/create-feature.md +41 -0
- microwave_method-0.1.0/flows/devil-loop.md +46 -0
- microwave_method-0.1.0/flows/devil-review.md +84 -0
- microwave_method-0.1.0/flows/librarian.md +39 -0
- microwave_method-0.1.0/flows/metrics.md +41 -0
- microwave_method-0.1.0/flows/resume.md +35 -0
- microwave_method-0.1.0/flows/save.md +59 -0
- microwave_method-0.1.0/flows/welcome.md +95 -0
- microwave_method-0.1.0/gates/_lib.py +201 -0
- microwave_method-0.1.0/gates/activate.py +87 -0
- microwave_method-0.1.0/gates/docgen.py +130 -0
- microwave_method-0.1.0/gates/gate_antidup.py +62 -0
- microwave_method-0.1.0/gates/gate_brief.py +45 -0
- microwave_method-0.1.0/gates/gate_docs.py +31 -0
- microwave_method-0.1.0/gates/gate_embodiment.py +68 -0
- microwave_method-0.1.0/gates/gate_schema.py +107 -0
- microwave_method-0.1.0/gates/gate_slop.py +106 -0
- microwave_method-0.1.0/gates/gate_testable.py +52 -0
- microwave_method-0.1.0/gates/gate_wiki.py +119 -0
- microwave_method-0.1.0/gates/metrics.py +118 -0
- microwave_method-0.1.0/gates/run_gates.py +37 -0
- microwave_method-0.1.0/gates/trace.py +136 -0
- microwave_method-0.1.0/harness/claude-settings.example.json +21 -0
- microwave_method-0.1.0/hooks/install-hooks.ps1 +22 -0
- microwave_method-0.1.0/hooks/install-hooks.sh +23 -0
- microwave_method-0.1.0/hooks/pre-commit +41 -0
- microwave_method-0.1.0/install/banner.txt +10 -0
- microwave_method-0.1.0/install/bootstrap.ps1 +36 -0
- microwave_method-0.1.0/install/bootstrap.sh +21 -0
- microwave_method-0.1.0/install/install.ps1 +76 -0
- microwave_method-0.1.0/install/install.sh +56 -0
- microwave_method-0.1.0/microwave_method/__init__.py +131 -0
- microwave_method-0.1.0/pyproject.toml +43 -0
- microwave_method-0.1.0/slop/slop-rules.csv +16 -0
- microwave_method-0.1.0/techniques/README.md +39 -0
- microwave_method-0.1.0/techniques/brainstorming-methods.csv +109 -0
- microwave_method-0.1.0/techniques/design-methods.csv +31 -0
- microwave_method-0.1.0/techniques/elicitation-methods.csv +72 -0
- microwave_method-0.1.0/techniques/innovation-frameworks.csv +31 -0
- microwave_method-0.1.0/techniques/solving-methods.csv +31 -0
- microwave_method-0.1.0/techniques/story-types.csv +26 -0
- microwave_method-0.1.0/templates/adr.md +27 -0
- microwave_method-0.1.0/templates/agent-card.md +52 -0
- microwave_method-0.1.0/templates/brief.md +19 -0
- microwave_method-0.1.0/templates/bug.md +28 -0
- microwave_method-0.1.0/templates/devil-report.md +32 -0
- microwave_method-0.1.0/templates/inventory-entry.md +25 -0
- microwave_method-0.1.0/templates/learning.md +24 -0
- microwave_method-0.1.0/templates/project-seed.md +24 -0
- microwave_method-0.1.0/templates/session-save.md +40 -0
- microwave_method-0.1.0/templates/story.md +24 -0
- microwave_method-0.1.0/wiki/INDEX.md +22 -0
- microwave_method-0.1.0/wiki/RULES.md +128 -0
- microwave_method-0.1.0/wiki/_archive/README.md +14 -0
- microwave_method-0.1.0/wiki/_staging/README.md +16 -0
- microwave_method-0.1.0/wiki/adr/ADR-001-two-pass-method.md +32 -0
- microwave_method-0.1.0/wiki/adr/ADR-002-machine-gates.md +32 -0
- microwave_method-0.1.0/wiki/adr/ADR-003-ceremony-selector.md +42 -0
- microwave_method-0.1.0/wiki/adr/ADR-004-embodiment.md +43 -0
- microwave_method-0.1.0/wiki/adr/ADR-005-two-plane-wiki.md +32 -0
- microwave_method-0.1.0/wiki/adr/ADR-006-harness-enforcement.md +36 -0
- microwave_method-0.1.0/wiki/adr/ADR-007-stdlib-gates.md +34 -0
- microwave_method-0.1.0/wiki/adr/ADR-008-bootstrap.md +33 -0
- microwave_method-0.1.0/wiki/adr/ADR-009-devil-review.md +36 -0
- microwave_method-0.1.0/wiki/adr/ADR-010-adopt-first.md +37 -0
- microwave_method-0.1.0/wiki/adr/ADR-011-anti-slop.md +41 -0
- microwave_method-0.1.0/wiki/adr/ADR-012-session-saves.md +42 -0
- microwave_method-0.1.0/wiki/adr/ADR-013-lossless-adoption.md +50 -0
- microwave_method-0.1.0/wiki/adr/ADR-014-continuous-measurement.md +50 -0
- microwave_method-0.1.0/wiki/adr/ADR-015-artifacts-have-a-form.md +52 -0
- microwave_method-0.1.0/wiki/adr/ADR-016-design-and-code-are-shared-layers.md +60 -0
- microwave_method-0.1.0/wiki/adr/ADR-017-two-memories.md +50 -0
- microwave_method-0.1.0/wiki/adr/ADR-018-contribution-digest.md +45 -0
- microwave_method-0.1.0/wiki/adr/ADR-019-capture-triggers-on-context-pressure.md +83 -0
- microwave_method-0.1.0/wiki/adr/ADR-020-verify-global-impact.md +56 -0
- microwave_method-0.1.0/wiki/adr/ADR-021-traceability-is-a-git-projection.md +56 -0
- microwave_method-0.1.0/wiki/adr/ADR-022-derivable-docs-are-generated.md +61 -0
- microwave_method-0.1.0/wiki/adr/ADR-023-guided-flows-adapt-to-the-person.md +66 -0
- microwave_method-0.1.0/wiki/adr/ADR-024-one-command-install-via-uvx.md +57 -0
- microwave_method-0.1.0/wiki/agents/factory.md +61 -0
- microwave_method-0.1.0/wiki/agents/librarian.md +55 -0
- microwave_method-0.1.0/wiki/metrics/LEDGER.md +11 -0
- microwave_method-0.1.0/wiki/projects/README.md +6 -0
- microwave_method-0.1.0/wiki/projects/microwave/brief.md +27 -0
- microwave_method-0.1.0/wiki/projects/microwave/learnings/LRN-001-directories-lie.md +30 -0
- microwave_method-0.1.0/wiki/projects/microwave/learnings/LRN-002-oversized-artifacts.md +30 -0
- microwave_method-0.1.0/wiki/projects/microwave/learnings/LRN-003-archive-quotes-foreign.md +32 -0
- microwave_method-0.1.0/wiki/projects/microwave/learnings/LRN-004-context-skills-atomic.md +36 -0
- microwave_method-0.1.0/wiki/projects/microwave/learnings/LRN-005-consolidate-engine-not-verbs.md +39 -0
- microwave_method-0.1.0/wiki/projects/microwave/learnings/LRN-006-capture-on-the-critical-path.md +36 -0
- microwave_method-0.1.0/wiki/projects/microwave/learnings/LRN-007-shared-source-stays-a-layer.md +36 -0
- microwave_method-0.1.0/wiki/projects/microwave/learnings/LRN-008-classify-form-before-disposition.md +34 -0
- microwave_method-0.1.0/wiki/projects/microwave/learnings/LRN-009-design-system-is-a-compound-memory.md +34 -0
- microwave_method-0.1.0/wiki/projects/microwave/learnings/LRN-010-gates-scope-to-produced-content.md +34 -0
- microwave_method-0.1.0/wiki/projects/microwave/learnings/LRN-011-negation-in-heuristics.md +34 -0
- microwave_method-0.1.0/wiki/sessions/REGISTER.md +9 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: gates
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
gates:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
- uses: actions/setup-python@v5
|
|
16
|
+
with:
|
|
17
|
+
python-version: "3.12"
|
|
18
|
+
- name: Wiki integrity
|
|
19
|
+
run: python gates/gate_wiki.py
|
|
20
|
+
- name: Anti-slop sweep
|
|
21
|
+
run: python gates/gate_slop.py
|
|
22
|
+
- name: Generated docs are fresh
|
|
23
|
+
run: python gates/gate_docs.py
|
|
24
|
+
- name: All agent cards (active and staged)
|
|
25
|
+
run: |
|
|
26
|
+
set -e
|
|
27
|
+
found=0
|
|
28
|
+
for card in wiki/agents/*.md wiki/_staging/*.md; do
|
|
29
|
+
[ -e "$card" ] || continue
|
|
30
|
+
case "$card" in *README.md) continue;; esac
|
|
31
|
+
found=1
|
|
32
|
+
python gates/run_gates.py "$card"
|
|
33
|
+
done
|
|
34
|
+
[ "$found" = "1" ] || echo "no agent cards yet"
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# The gatekeeper owns the protected space: no change to the rules, the flows,
|
|
2
|
+
# or the meta wiki merges without their review (pair with branch protection,
|
|
3
|
+
# see docs/governance.md "Repo layer").
|
|
4
|
+
/gates/ @microphage-create
|
|
5
|
+
/flows/ @microphage-create
|
|
6
|
+
/hooks/ @microphage-create
|
|
7
|
+
/harness/ @microphage-create
|
|
8
|
+
/wiki/adr/ @microphage-create
|
|
9
|
+
/.github/ @microphage-create
|
|
10
|
+
/CODEOWNERS @microphage-create
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
The most valuable first contribution takes five minutes: run the macOS or
|
|
4
|
+
Linux embodiment adapter on a real machine and report what happened (see
|
|
5
|
+
`docs/embodiment.md`). Open an issue titled `adapter-report: <os>` with your
|
|
6
|
+
OS version, your terminal, and the output of:
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
python3 embodiment/embody.py wiki/agents/factory.md --dry-run
|
|
10
|
+
python3 embodiment/embody.py wiki/agents/factory.md
|
|
11
|
+
python3 embodiment/embody.py wiki/agents/factory.md --remove
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Pull requests
|
|
15
|
+
|
|
16
|
+
- Run the gates before pushing: `python gates/gate_wiki.py && python
|
|
17
|
+
gates/gate_slop.py` (the pre-commit hook does this if you ran
|
|
18
|
+
`hooks/install-hooks.sh`). CI runs them on every PR.
|
|
19
|
+
- Changes to `gates/`, `flows/`, `hooks/`, `harness/` or `wiki/adr/` go
|
|
20
|
+
through the amend-rule flow (`flows/amend-rule.md`) and require gatekeeper
|
|
21
|
+
review (see CODEOWNERS).
|
|
22
|
+
- Keep it stdlib-only (ADR-007): a PR adding a dependency to a gate or an
|
|
23
|
+
adapter core path will be declined.
|
|
24
|
+
- Prose follows the repo's own slop rules (`slop/slop-rules.csv`); the gates
|
|
25
|
+
will tell you.
|
|
26
|
+
|
|
27
|
+
## Scope
|
|
28
|
+
|
|
29
|
+
Bug fixes, adapter reports, portability fixes and slop-rule contributions
|
|
30
|
+
are welcome directly. New flows, gates or adapters: open an issue first so
|
|
31
|
+
the design discussion happens before the code.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Microphage SASU (Romain Bigache)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Notices
|
|
2
|
+
|
|
3
|
+
Microwave Method is an original work by Microphage SASU (Romain Bigache), MIT licensed.
|
|
4
|
+
|
|
5
|
+
## Attribution
|
|
6
|
+
|
|
7
|
+
The elicitation and guided-creation approach is inspired by the
|
|
8
|
+
**BMAD-METHOD** project (https://github.com/bmad-code-org/BMAD-METHOD),
|
|
9
|
+
released under the MIT License, copyright (c) 2025 BMad Code, LLC and
|
|
10
|
+
contributors.
|
|
11
|
+
|
|
12
|
+
Adapted from BMAD-METHOD (MIT), with gratitude:
|
|
13
|
+
- `techniques/brainstorming-methods.csv`: from
|
|
14
|
+
`src/core-skills/bmad-brainstorming/assets/brain-methods.csv`
|
|
15
|
+
- `techniques/elicitation-methods.csv`: from
|
|
16
|
+
`src/core-skills/bmad-advanced-elicitation/assets/methods.csv`
|
|
17
|
+
|
|
18
|
+
Adapted from bmad-module-creative-intelligence-suite
|
|
19
|
+
(https://github.com/bmad-code-org/bmad-module-creative-intelligence-suite,
|
|
20
|
+
MIT, copyright (c) 2025 BMad Code, LLC), with gratitude:
|
|
21
|
+
- `techniques/design-methods.csv`, `techniques/solving-methods.csv`,
|
|
22
|
+
`techniques/innovation-frameworks.csv`, `techniques/story-types.csv`:
|
|
23
|
+
from `src/skills/bmad-cis-*/`.
|
|
24
|
+
|
|
25
|
+
The severity-grid and derived-verdict pattern in `flows/devil-review.md` is
|
|
26
|
+
informed by the design discussion published in the BMAD Test Architecture
|
|
27
|
+
Enterprise module (criteria registry: fixed severities, verdicts derived
|
|
28
|
+
from findings).
|
|
29
|
+
|
|
30
|
+
"BMAD" is a trademark of its respective owner. Microwave Method is not
|
|
31
|
+
affiliated with, endorsed by, or sponsored by the BMAD project. No BMAD
|
|
32
|
+
trademark is used to name or brand this project.
|
|
33
|
+
|
|
34
|
+
The persistent-wiki pattern draws on Andrej Karpathy's public `llm-wiki` gist
|
|
35
|
+
(concept, not code).
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: microwave-method
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: An agent factory with a governed memory. One command drops it into your repo and hands you to your coding agent for a guided welcome.
|
|
5
|
+
Project-URL: Homepage, https://github.com/microphage-create/microwave-method
|
|
6
|
+
Author: Microphage
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
License-File: NOTICE.md
|
|
10
|
+
Keywords: agents,factory,governance,llm,wiki
|
|
11
|
+
Requires-Python: >=3.10
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
|
|
14
|
+
# Microwave Method
|
|
15
|
+
|
|
16
|
+
**An agent factory with a governed memory. Heavy pass once per agent, light pass per feature. Context is cooked once and reheated at cache price.**
|
|
17
|
+
|
|
18
|
+
*Methods tell you what to do. Microwave verifies it was done.*
|
|
19
|
+
|
|
20
|
+
[](https://github.com/microphage-create/microwave-method/actions/workflows/gates.yml)
|
|
21
|
+
[](LICENSE)
|
|
22
|
+
|
|
23
|
+
Microwave is a method, not a runtime. It ships as markdown flows, templates, and
|
|
24
|
+
a handful of dependency-free scripts that any coding agent (Claude Code, Codex,
|
|
25
|
+
Cursor, ...) can execute. It answers one question organizations keep failing at:
|
|
26
|
+
**how do you let everyone create agents without ending up with a pile of agents
|
|
27
|
+
nobody can map?**
|
|
28
|
+
|
|
29
|
+
> [Gartner projects 150,000+ agents per Fortune 500 enterprise by 2028](https://cxotoday.com/editors-picks/how-to-manage-ai-agent-sprawl-a-six-step-framework-by-gartner/),
|
|
30
|
+
> and prescribes exactly three things: rules for who creates agents, a central
|
|
31
|
+
> inventory, and a lifecycle that retires redundant ones.
|
|
32
|
+
> [94% of IT leaders say agent sprawl is already increasing complexity and risk; 12% have a central platform for it](https://www.outsystems.com/news/enterprise-ai-agent-report-2026/).
|
|
33
|
+
> Microwave is that missing method, as open source you install in your repo,
|
|
34
|
+
> not a SaaS you buy.
|
|
35
|
+
|
|
36
|
+
## Why "Microwave"
|
|
37
|
+
|
|
38
|
+
A microwave oven does not cook your dish from scratch. It excites the water
|
|
39
|
+
molecules already present in it. That is the whole thesis: **your wiki atoms are
|
|
40
|
+
the water molecules.** The expensive work (specifying an agent, curating what it
|
|
41
|
+
learned) is done once and stored. Every subsequent feature just reheats context
|
|
42
|
+
that already exists, at cache-read price, instead of rediscovering it from
|
|
43
|
+
scratch on every session.
|
|
44
|
+
|
|
45
|
+
## The middle you were missing
|
|
46
|
+
|
|
47
|
+
- Heavyweight agent methods give you structure, at the cost of hours of ceremony
|
|
48
|
+
per object, producing documents nobody reads again.
|
|
49
|
+
- Plan-mode-style planning gives you speed, and leaves nothing behind: no
|
|
50
|
+
durable artifact, no governance, no compounding.
|
|
51
|
+
|
|
52
|
+
Microwave is the middle, **by construction, not by promise**, through two
|
|
53
|
+
mechanical tests:
|
|
54
|
+
|
|
55
|
+
1. **The consumption test.** A method step exists only if its artifact is
|
|
56
|
+
consumed by someone: the runtime, the registry, or the gatekeeper. A step whose
|
|
57
|
+
output nobody reads is deleted from the method.
|
|
58
|
+
2. **The ceremony selector.** The depth of the creation flow is proportional to
|
|
59
|
+
the agent's blast radius (what it can read, write, spend, or touch), never to
|
|
60
|
+
the creator's mood. Read-only helper: fast path, minutes. Agent that writes,
|
|
61
|
+
spends, or touches production: full path, with a human gatekeeper before
|
|
62
|
+
activation.
|
|
63
|
+
|
|
64
|
+
## How it works
|
|
65
|
+
|
|
66
|
+
One recursive method, two planes, one registry.
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
META PLANE (the factory) PRODUCT PLANE (the work)
|
|
70
|
+
┌────────────────────────────────────┐ ┌────────────────────────────────────┐
|
|
71
|
+
│ PASS 1 - heavy, ONCE per agent │ │ PASS 2 - light, EVERY feature │
|
|
72
|
+
│ elicit → spec → anti-dup → build │ │ intent → short story with │
|
|
73
|
+
│ → embodiment → card in registry │───▶│ verifiable done-criteria → build │
|
|
74
|
+
│ → wiki seeded │ │ → traces written to the wiki │
|
|
75
|
+
└────────────────────────────────────┘ └────────────────────────────────────┘
|
|
76
|
+
▲ │
|
|
77
|
+
└──── governed promotion (gatekeeper) ◀──┘
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
- **The registry** is an index-first file: one line per agent, cards opened on
|
|
81
|
+
demand, readable by humans and by LLMs, consumed at runtime. A registry the
|
|
82
|
+
runtime reads cannot rot into dead documentation.
|
|
83
|
+
- **The wiki** has one format and two scopes: `wiki/agents/` +
|
|
84
|
+
`wiki/adr/` (org-wide meta plane) and `wiki/projects/<name>/` (product
|
|
85
|
+
plane). Learnings are promoted upward only through the gatekeeper. Subsidiarity:
|
|
86
|
+
every atom lives at the lowest level that suffices.
|
|
87
|
+
- **Recursion is governed.** Agents may create agents, but only through the
|
|
88
|
+
factory: the factory is the single entry point of creation. That is the
|
|
89
|
+
anti-sprawl invariant.
|
|
90
|
+
|
|
91
|
+
## The memory is a wiki, not a RAG
|
|
92
|
+
|
|
93
|
+
Most tools bolt memory on as a RAG: chop your docs into chunks, turn each chunk
|
|
94
|
+
into an opaque vector, and at query time pull back "whatever looks similar". It
|
|
95
|
+
half-works, and it rots invisibly: chunks are cut mid-thought, similarity
|
|
96
|
+
retrieval is fuzzy so it misses the relevant and drags in noise, nobody can read
|
|
97
|
+
a vector, and nothing is governed, so a stale or wrong chunk lives forever.
|
|
98
|
+
|
|
99
|
+
Microwave's memory is a governed wiki of atoms (the Karpathy pattern). One atom
|
|
100
|
+
is one idea, in plain markdown, tagged (type, id) and linked to the others.
|
|
101
|
+
Three things follow:
|
|
102
|
+
|
|
103
|
+
- **Readable both ways.** The same file serves the human, who reads and corrects
|
|
104
|
+
it, and the agent, which opens it on demand. One source of truth, not a doc set
|
|
105
|
+
for people plus a vector store for the machine. You can see, in plain text,
|
|
106
|
+
what your system knows.
|
|
107
|
+
- **Targeted, not fuzzy.** An index holds one line per atom; the agent reads the
|
|
108
|
+
menu and opens the exact atom by name, instead of scooping the whole fridge
|
|
109
|
+
hoping to catch the right chunk. Deterministic where RAG is probabilistic. It
|
|
110
|
+
is the microwave again: excite the right molecule, do not reheat the whole pan.
|
|
111
|
+
- **Governed and alive.** The gates refuse duplicates, doctrine distills instead
|
|
112
|
+
of piling up, and wikilinks turn atoms into a graph, a real body of knowledge.
|
|
113
|
+
This is the second brain of your whole workflow: a persistent external memory
|
|
114
|
+
your agents query, not a throwaway context reloaded blind every session.
|
|
115
|
+
|
|
116
|
+
RAG is not wrong; it is the right tool for searching a huge unstructured corpus.
|
|
117
|
+
But for the cumulative memory of a workflow, knowledge you want correct,
|
|
118
|
+
structured and current, the atom wiki wins outright, and at scale the index can
|
|
119
|
+
itself gain a retrieval layer. Right tool, right place.
|
|
120
|
+
|
|
121
|
+
## Gates, not meetings
|
|
122
|
+
|
|
123
|
+
A creation plan passes a series of **machine gates**, like a CI for agent
|
|
124
|
+
creation. No committee, no ceremony:
|
|
125
|
+
|
|
126
|
+
<!-- microwave:gates start -->
|
|
127
|
+
<!-- generated by gates/docgen.py, do not edit by hand -->
|
|
128
|
+
|
|
129
|
+
| Gate | Guarantee |
|
|
130
|
+
|---|---|
|
|
131
|
+
| `gate_antidup` | no unjustified overlap with the registry |
|
|
132
|
+
| `gate_brief` | the 3-section brief is complete |
|
|
133
|
+
| `gate_schema` | the agent card matches the template contract |
|
|
134
|
+
| `gate_testable` | every done-criterion is tied to an executable check |
|
|
135
|
+
| `gate_embodiment` | the agent has a body when it needs one |
|
|
136
|
+
| `gate_slop` | durable artifacts do not read like slop |
|
|
137
|
+
| `gate_wiki` | the wiki is linked, indexed, and its atoms carry their contract |
|
|
138
|
+
| `gate_docs` | generated doc sections match their source |
|
|
139
|
+
|
|
140
|
+
<!-- microwave:gates end -->
|
|
141
|
+
|
|
142
|
+
This table is generated from the gates themselves by `gates/docgen.py` and
|
|
143
|
+
cannot go stale: `gate_docs` fails the build if it drifts from the code
|
|
144
|
+
(ADR-022). The slop bank (`slop/slop-rules.csv`) ships as a generic starter and
|
|
145
|
+
takes your org's own rows; the mechanism does not change.
|
|
146
|
+
|
|
147
|
+
Every gate rejects with an actionable message; you fix and re-run. Gates check
|
|
148
|
+
form; substance is attacked by the **devil loop** (`flows/devil-loop.md`): a
|
|
149
|
+
fresh agent session with no creation context reviews every full-path creation
|
|
150
|
+
adversarially, round after round, until it finds nothing. **One single human
|
|
151
|
+
point**: the gatekeeper, only on the full path, judging only cards with a
|
|
152
|
+
clean devil report. On the fast path, green gates = `gates/activate.py`,
|
|
153
|
+
nobody to wait for.
|
|
154
|
+
|
|
155
|
+
Rules are enforced at the harness level, the way a coding agent is denied
|
|
156
|
+
reading your `.env`: the system refuses, goodwill is not involved. Shipped as
|
|
157
|
+
artifacts: example permission deny-rules (`harness/`), a pre-commit hook that
|
|
158
|
+
runs the gates (`hooks/`), a CI workflow (`.github/workflows/gates.yml`) and
|
|
159
|
+
`CODEOWNERS` on the protected space. One thing files cannot carry: enable
|
|
160
|
+
branch protection on your host (the installer prints the command). Rules are
|
|
161
|
+
inviolable in execution and amendable only through process
|
|
162
|
+
(`flows/amend-rule.md`): a constitution, not a dogma.
|
|
163
|
+
|
|
164
|
+
## Agents as apps
|
|
165
|
+
|
|
166
|
+
An agent that can do damage is not done until it has a body (a read-only
|
|
167
|
+
one may stay bodiless): pass 1 generates its desktop presence: an icon, a short name, a themed terminal profile, a launcher. These
|
|
168
|
+
are **terminals dressed as apps, not apps replacing the terminal**: full
|
|
169
|
+
terminal power, zero anonymity. With five sessions open in parallel you know
|
|
170
|
+
who is who at a glance. One identity manifest, one adapter per OS
|
|
171
|
+
(Windows Terminal + PowerShell, iTerm2/Terminal.app, freedesktop). The
|
|
172
|
+
Windows adapter is the tested reference; **macOS and Linux adapters are
|
|
173
|
+
experimental (written, not yet run on real machines): testing one takes five
|
|
174
|
+
minutes and a report is a welcome first contribution.** See
|
|
175
|
+
`docs/embodiment.md`.
|
|
176
|
+
|
|
177
|
+
## Install (one line)
|
|
178
|
+
|
|
179
|
+
```powershell
|
|
180
|
+
# Windows (PowerShell 7+), from your repo:
|
|
181
|
+
irm https://raw.githubusercontent.com/microphage-create/microwave-method/main/install/bootstrap.ps1 | iex
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
# macOS / Linux, from your repo:
|
|
186
|
+
curl -fsSL https://raw.githubusercontent.com/microphage-create/microwave-method/main/install/bootstrap.sh | bash
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Prerequisites: `git` and Python 3.10+, nothing else (stdlib only). Per-OS
|
|
190
|
+
walkthrough, troubleshooting and uninstall: `docs/install.md`. The generated
|
|
191
|
+
reference (flows, gates, decisions) is `docs/reference.md`.
|
|
192
|
+
|
|
193
|
+
This copies the flows, templates, technique banks, slop rules, gates,
|
|
194
|
+
embodiment tooling, harness examples and hooks into your repo, wires the
|
|
195
|
+
pre-commit hook, and drops the CI workflow and a CODEOWNERS placeholder. Finish the hardening by enabling
|
|
196
|
+
branch protection (the installer prints the command).
|
|
197
|
+
|
|
198
|
+
Then start where every real organization starts: with what already exists:
|
|
199
|
+
open your coding agent and say *"run the Microwave adopt flow"*. It scans
|
|
200
|
+
wherever your agents sleep (`.claude/`, prompt folders, repos), archives one
|
|
201
|
+
inventory entry per artifact found, and writes the shopping list of
|
|
202
|
+
migrations (`wiki/_archive/BACKLOG.md`). Migrating an archived agent through
|
|
203
|
+
*"run the Microwave create-agent flow"* is the cheapest creation you will
|
|
204
|
+
ever run: the entry is the elicitation input.
|
|
205
|
+
|
|
206
|
+
## The economics, honestly
|
|
207
|
+
|
|
208
|
+
- Reading context dominates agent cost: **76.1% of operation tokens** in
|
|
209
|
+
measured coding sessions (SWE-Pruner, arXiv:2601.16746).
|
|
210
|
+
- Static context files alone are disputed: one study measured −28.6% runtime
|
|
211
|
+
(arXiv:2601.20404), two replications found no correctness effect
|
|
212
|
+
(arXiv:2602.11988, arXiv:2607.27250). We do not sell that number.
|
|
213
|
+
- What holds: **continuously refined context beats static context** (33.0% vs
|
|
214
|
+
28.3% resolution, p<0.001, arXiv:2606.20512). It is the *governed upkeep* of
|
|
215
|
+
context that pays, not the file. That upkeep is precisely what this method
|
|
216
|
+
automates, and what your provider's prompt cache (0.1x read price) turns into
|
|
217
|
+
savings across sessions and agents.
|
|
218
|
+
|
|
219
|
+
Measure your own numbers: the method instruments itself (see `docs/method.md`).
|
|
220
|
+
|
|
221
|
+
## Status
|
|
222
|
+
|
|
223
|
+
Extracted from a system operated daily since early 2026 by its author (45+
|
|
224
|
+
active skills, a 4-generation governed rule corpus, 300+ knowledge atoms on a
|
|
225
|
+
single product). Bootstrapped light, self-hosting as soon as the factory runs:
|
|
226
|
+
Microwave's next module is created by Microwave.
|
|
227
|
+
|
|
228
|
+
MIT. See `NOTICE.md` for attributions.
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# Microwave Method
|
|
2
|
+
|
|
3
|
+
**An agent factory with a governed memory. Heavy pass once per agent, light pass per feature. Context is cooked once and reheated at cache price.**
|
|
4
|
+
|
|
5
|
+
*Methods tell you what to do. Microwave verifies it was done.*
|
|
6
|
+
|
|
7
|
+
[](https://github.com/microphage-create/microwave-method/actions/workflows/gates.yml)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
|
|
10
|
+
Microwave is a method, not a runtime. It ships as markdown flows, templates, and
|
|
11
|
+
a handful of dependency-free scripts that any coding agent (Claude Code, Codex,
|
|
12
|
+
Cursor, ...) can execute. It answers one question organizations keep failing at:
|
|
13
|
+
**how do you let everyone create agents without ending up with a pile of agents
|
|
14
|
+
nobody can map?**
|
|
15
|
+
|
|
16
|
+
> [Gartner projects 150,000+ agents per Fortune 500 enterprise by 2028](https://cxotoday.com/editors-picks/how-to-manage-ai-agent-sprawl-a-six-step-framework-by-gartner/),
|
|
17
|
+
> and prescribes exactly three things: rules for who creates agents, a central
|
|
18
|
+
> inventory, and a lifecycle that retires redundant ones.
|
|
19
|
+
> [94% of IT leaders say agent sprawl is already increasing complexity and risk; 12% have a central platform for it](https://www.outsystems.com/news/enterprise-ai-agent-report-2026/).
|
|
20
|
+
> Microwave is that missing method, as open source you install in your repo,
|
|
21
|
+
> not a SaaS you buy.
|
|
22
|
+
|
|
23
|
+
## Why "Microwave"
|
|
24
|
+
|
|
25
|
+
A microwave oven does not cook your dish from scratch. It excites the water
|
|
26
|
+
molecules already present in it. That is the whole thesis: **your wiki atoms are
|
|
27
|
+
the water molecules.** The expensive work (specifying an agent, curating what it
|
|
28
|
+
learned) is done once and stored. Every subsequent feature just reheats context
|
|
29
|
+
that already exists, at cache-read price, instead of rediscovering it from
|
|
30
|
+
scratch on every session.
|
|
31
|
+
|
|
32
|
+
## The middle you were missing
|
|
33
|
+
|
|
34
|
+
- Heavyweight agent methods give you structure, at the cost of hours of ceremony
|
|
35
|
+
per object, producing documents nobody reads again.
|
|
36
|
+
- Plan-mode-style planning gives you speed, and leaves nothing behind: no
|
|
37
|
+
durable artifact, no governance, no compounding.
|
|
38
|
+
|
|
39
|
+
Microwave is the middle, **by construction, not by promise**, through two
|
|
40
|
+
mechanical tests:
|
|
41
|
+
|
|
42
|
+
1. **The consumption test.** A method step exists only if its artifact is
|
|
43
|
+
consumed by someone: the runtime, the registry, or the gatekeeper. A step whose
|
|
44
|
+
output nobody reads is deleted from the method.
|
|
45
|
+
2. **The ceremony selector.** The depth of the creation flow is proportional to
|
|
46
|
+
the agent's blast radius (what it can read, write, spend, or touch), never to
|
|
47
|
+
the creator's mood. Read-only helper: fast path, minutes. Agent that writes,
|
|
48
|
+
spends, or touches production: full path, with a human gatekeeper before
|
|
49
|
+
activation.
|
|
50
|
+
|
|
51
|
+
## How it works
|
|
52
|
+
|
|
53
|
+
One recursive method, two planes, one registry.
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
META PLANE (the factory) PRODUCT PLANE (the work)
|
|
57
|
+
┌────────────────────────────────────┐ ┌────────────────────────────────────┐
|
|
58
|
+
│ PASS 1 - heavy, ONCE per agent │ │ PASS 2 - light, EVERY feature │
|
|
59
|
+
│ elicit → spec → anti-dup → build │ │ intent → short story with │
|
|
60
|
+
│ → embodiment → card in registry │───▶│ verifiable done-criteria → build │
|
|
61
|
+
│ → wiki seeded │ │ → traces written to the wiki │
|
|
62
|
+
└────────────────────────────────────┘ └────────────────────────────────────┘
|
|
63
|
+
▲ │
|
|
64
|
+
└──── governed promotion (gatekeeper) ◀──┘
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
- **The registry** is an index-first file: one line per agent, cards opened on
|
|
68
|
+
demand, readable by humans and by LLMs, consumed at runtime. A registry the
|
|
69
|
+
runtime reads cannot rot into dead documentation.
|
|
70
|
+
- **The wiki** has one format and two scopes: `wiki/agents/` +
|
|
71
|
+
`wiki/adr/` (org-wide meta plane) and `wiki/projects/<name>/` (product
|
|
72
|
+
plane). Learnings are promoted upward only through the gatekeeper. Subsidiarity:
|
|
73
|
+
every atom lives at the lowest level that suffices.
|
|
74
|
+
- **Recursion is governed.** Agents may create agents, but only through the
|
|
75
|
+
factory: the factory is the single entry point of creation. That is the
|
|
76
|
+
anti-sprawl invariant.
|
|
77
|
+
|
|
78
|
+
## The memory is a wiki, not a RAG
|
|
79
|
+
|
|
80
|
+
Most tools bolt memory on as a RAG: chop your docs into chunks, turn each chunk
|
|
81
|
+
into an opaque vector, and at query time pull back "whatever looks similar". It
|
|
82
|
+
half-works, and it rots invisibly: chunks are cut mid-thought, similarity
|
|
83
|
+
retrieval is fuzzy so it misses the relevant and drags in noise, nobody can read
|
|
84
|
+
a vector, and nothing is governed, so a stale or wrong chunk lives forever.
|
|
85
|
+
|
|
86
|
+
Microwave's memory is a governed wiki of atoms (the Karpathy pattern). One atom
|
|
87
|
+
is one idea, in plain markdown, tagged (type, id) and linked to the others.
|
|
88
|
+
Three things follow:
|
|
89
|
+
|
|
90
|
+
- **Readable both ways.** The same file serves the human, who reads and corrects
|
|
91
|
+
it, and the agent, which opens it on demand. One source of truth, not a doc set
|
|
92
|
+
for people plus a vector store for the machine. You can see, in plain text,
|
|
93
|
+
what your system knows.
|
|
94
|
+
- **Targeted, not fuzzy.** An index holds one line per atom; the agent reads the
|
|
95
|
+
menu and opens the exact atom by name, instead of scooping the whole fridge
|
|
96
|
+
hoping to catch the right chunk. Deterministic where RAG is probabilistic. It
|
|
97
|
+
is the microwave again: excite the right molecule, do not reheat the whole pan.
|
|
98
|
+
- **Governed and alive.** The gates refuse duplicates, doctrine distills instead
|
|
99
|
+
of piling up, and wikilinks turn atoms into a graph, a real body of knowledge.
|
|
100
|
+
This is the second brain of your whole workflow: a persistent external memory
|
|
101
|
+
your agents query, not a throwaway context reloaded blind every session.
|
|
102
|
+
|
|
103
|
+
RAG is not wrong; it is the right tool for searching a huge unstructured corpus.
|
|
104
|
+
But for the cumulative memory of a workflow, knowledge you want correct,
|
|
105
|
+
structured and current, the atom wiki wins outright, and at scale the index can
|
|
106
|
+
itself gain a retrieval layer. Right tool, right place.
|
|
107
|
+
|
|
108
|
+
## Gates, not meetings
|
|
109
|
+
|
|
110
|
+
A creation plan passes a series of **machine gates**, like a CI for agent
|
|
111
|
+
creation. No committee, no ceremony:
|
|
112
|
+
|
|
113
|
+
<!-- microwave:gates start -->
|
|
114
|
+
<!-- generated by gates/docgen.py, do not edit by hand -->
|
|
115
|
+
|
|
116
|
+
| Gate | Guarantee |
|
|
117
|
+
|---|---|
|
|
118
|
+
| `gate_antidup` | no unjustified overlap with the registry |
|
|
119
|
+
| `gate_brief` | the 3-section brief is complete |
|
|
120
|
+
| `gate_schema` | the agent card matches the template contract |
|
|
121
|
+
| `gate_testable` | every done-criterion is tied to an executable check |
|
|
122
|
+
| `gate_embodiment` | the agent has a body when it needs one |
|
|
123
|
+
| `gate_slop` | durable artifacts do not read like slop |
|
|
124
|
+
| `gate_wiki` | the wiki is linked, indexed, and its atoms carry their contract |
|
|
125
|
+
| `gate_docs` | generated doc sections match their source |
|
|
126
|
+
|
|
127
|
+
<!-- microwave:gates end -->
|
|
128
|
+
|
|
129
|
+
This table is generated from the gates themselves by `gates/docgen.py` and
|
|
130
|
+
cannot go stale: `gate_docs` fails the build if it drifts from the code
|
|
131
|
+
(ADR-022). The slop bank (`slop/slop-rules.csv`) ships as a generic starter and
|
|
132
|
+
takes your org's own rows; the mechanism does not change.
|
|
133
|
+
|
|
134
|
+
Every gate rejects with an actionable message; you fix and re-run. Gates check
|
|
135
|
+
form; substance is attacked by the **devil loop** (`flows/devil-loop.md`): a
|
|
136
|
+
fresh agent session with no creation context reviews every full-path creation
|
|
137
|
+
adversarially, round after round, until it finds nothing. **One single human
|
|
138
|
+
point**: the gatekeeper, only on the full path, judging only cards with a
|
|
139
|
+
clean devil report. On the fast path, green gates = `gates/activate.py`,
|
|
140
|
+
nobody to wait for.
|
|
141
|
+
|
|
142
|
+
Rules are enforced at the harness level, the way a coding agent is denied
|
|
143
|
+
reading your `.env`: the system refuses, goodwill is not involved. Shipped as
|
|
144
|
+
artifacts: example permission deny-rules (`harness/`), a pre-commit hook that
|
|
145
|
+
runs the gates (`hooks/`), a CI workflow (`.github/workflows/gates.yml`) and
|
|
146
|
+
`CODEOWNERS` on the protected space. One thing files cannot carry: enable
|
|
147
|
+
branch protection on your host (the installer prints the command). Rules are
|
|
148
|
+
inviolable in execution and amendable only through process
|
|
149
|
+
(`flows/amend-rule.md`): a constitution, not a dogma.
|
|
150
|
+
|
|
151
|
+
## Agents as apps
|
|
152
|
+
|
|
153
|
+
An agent that can do damage is not done until it has a body (a read-only
|
|
154
|
+
one may stay bodiless): pass 1 generates its desktop presence: an icon, a short name, a themed terminal profile, a launcher. These
|
|
155
|
+
are **terminals dressed as apps, not apps replacing the terminal**: full
|
|
156
|
+
terminal power, zero anonymity. With five sessions open in parallel you know
|
|
157
|
+
who is who at a glance. One identity manifest, one adapter per OS
|
|
158
|
+
(Windows Terminal + PowerShell, iTerm2/Terminal.app, freedesktop). The
|
|
159
|
+
Windows adapter is the tested reference; **macOS and Linux adapters are
|
|
160
|
+
experimental (written, not yet run on real machines): testing one takes five
|
|
161
|
+
minutes and a report is a welcome first contribution.** See
|
|
162
|
+
`docs/embodiment.md`.
|
|
163
|
+
|
|
164
|
+
## Install (one line)
|
|
165
|
+
|
|
166
|
+
```powershell
|
|
167
|
+
# Windows (PowerShell 7+), from your repo:
|
|
168
|
+
irm https://raw.githubusercontent.com/microphage-create/microwave-method/main/install/bootstrap.ps1 | iex
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# macOS / Linux, from your repo:
|
|
173
|
+
curl -fsSL https://raw.githubusercontent.com/microphage-create/microwave-method/main/install/bootstrap.sh | bash
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Prerequisites: `git` and Python 3.10+, nothing else (stdlib only). Per-OS
|
|
177
|
+
walkthrough, troubleshooting and uninstall: `docs/install.md`. The generated
|
|
178
|
+
reference (flows, gates, decisions) is `docs/reference.md`.
|
|
179
|
+
|
|
180
|
+
This copies the flows, templates, technique banks, slop rules, gates,
|
|
181
|
+
embodiment tooling, harness examples and hooks into your repo, wires the
|
|
182
|
+
pre-commit hook, and drops the CI workflow and a CODEOWNERS placeholder. Finish the hardening by enabling
|
|
183
|
+
branch protection (the installer prints the command).
|
|
184
|
+
|
|
185
|
+
Then start where every real organization starts: with what already exists:
|
|
186
|
+
open your coding agent and say *"run the Microwave adopt flow"*. It scans
|
|
187
|
+
wherever your agents sleep (`.claude/`, prompt folders, repos), archives one
|
|
188
|
+
inventory entry per artifact found, and writes the shopping list of
|
|
189
|
+
migrations (`wiki/_archive/BACKLOG.md`). Migrating an archived agent through
|
|
190
|
+
*"run the Microwave create-agent flow"* is the cheapest creation you will
|
|
191
|
+
ever run: the entry is the elicitation input.
|
|
192
|
+
|
|
193
|
+
## The economics, honestly
|
|
194
|
+
|
|
195
|
+
- Reading context dominates agent cost: **76.1% of operation tokens** in
|
|
196
|
+
measured coding sessions (SWE-Pruner, arXiv:2601.16746).
|
|
197
|
+
- Static context files alone are disputed: one study measured −28.6% runtime
|
|
198
|
+
(arXiv:2601.20404), two replications found no correctness effect
|
|
199
|
+
(arXiv:2602.11988, arXiv:2607.27250). We do not sell that number.
|
|
200
|
+
- What holds: **continuously refined context beats static context** (33.0% vs
|
|
201
|
+
28.3% resolution, p<0.001, arXiv:2606.20512). It is the *governed upkeep* of
|
|
202
|
+
context that pays, not the file. That upkeep is precisely what this method
|
|
203
|
+
automates, and what your provider's prompt cache (0.1x read price) turns into
|
|
204
|
+
savings across sessions and agents.
|
|
205
|
+
|
|
206
|
+
Measure your own numbers: the method instruments itself (see `docs/method.md`).
|
|
207
|
+
|
|
208
|
+
## Status
|
|
209
|
+
|
|
210
|
+
Extracted from a system operated daily since early 2026 by its author (45+
|
|
211
|
+
active skills, a 4-generation governed rule corpus, 300+ knowledge atoms on a
|
|
212
|
+
single product). Bootstrapped light, self-hosting as soon as the factory runs:
|
|
213
|
+
Microwave's next module is created by Microwave.
|
|
214
|
+
|
|
215
|
+
MIT. See `NOTICE.md` for attributions.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Security policy
|
|
2
|
+
|
|
3
|
+
## Reporting a vulnerability
|
|
4
|
+
|
|
5
|
+
Use GitHub private vulnerability reporting on this repository (Security tab
|
|
6
|
+
> "Report a vulnerability"). Please do not open public issues for
|
|
7
|
+
exploitable findings. You will get an acknowledgment within 72 hours.
|
|
8
|
+
|
|
9
|
+
## Scope
|
|
10
|
+
|
|
11
|
+
The installers (`install/`), the git hook (`hooks/`), the gates (`gates/`)
|
|
12
|
+
and the embodiment adapters (`embodiment/`) run on contributor machines:
|
|
13
|
+
anything that lets a crafted agent card, wiki atom, or CSV rule row execute
|
|
14
|
+
unintended code or write outside the repository is in scope. The YAML-subset
|
|
15
|
+
parser (`gates/_lib.py`) processes untrusted card content and is in scope.
|
|
16
|
+
|
|
17
|
+
## Hardening notes for users
|
|
18
|
+
|
|
19
|
+
- The one-line installers clone the `main` branch. For a reproducible,
|
|
20
|
+
auditable install, clone a tagged release and run `install/install.sh`
|
|
21
|
+
(or `.ps1`) from it instead of piping the bootstrap.
|
|
22
|
+
- `embodiment.launch` is validated against shell metacharacters by
|
|
23
|
+
`gate_schema` and re-validated by `embody.py`; adapters escape identity
|
|
24
|
+
strings anyway (defense in depth).
|
|
25
|
+
|
|
26
|
+
## Supported versions
|
|
27
|
+
|
|
28
|
+
Only the latest release and `main` are supported.
|