yam-harness 0.1.0
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.
- package/AGENTS.md +18 -0
- package/COMMANDS.md +144 -0
- package/DECISIONS.md +70 -0
- package/LICENSE +21 -0
- package/README.md +159 -0
- package/ROADMAP.md +308 -0
- package/bin/yam.js +1966 -0
- package/package.json +74 -0
- package/references/context-reuse.md +59 -0
- package/references/current-docs.md +45 -0
- package/references/db-supabase-safety-lite.md +40 -0
- package/references/doctor-scan.md +56 -0
- package/references/eye.md +30 -0
- package/references/final-report.md +61 -0
- package/references/honest-completion.md +61 -0
- package/references/hook-lite.md +55 -0
- package/references/markdown-management.md +56 -0
- package/references/memory.md +59 -0
- package/references/mission.md +86 -0
- package/references/question.md +25 -0
- package/references/quick.md +70 -0
- package/references/risk-escalation.md +27 -0
- package/references/runtime-orchestration.md +57 -0
- package/references/scout.md +38 -0
- package/references/token-budget-reporter.md +44 -0
- package/references/token-economy.md +61 -0
- package/references/tool-trust-layer.md +113 -0
- package/references/truth-matrix.md +44 -0
- package/references/ueye.md +83 -0
- package/references/ui-quality.md +23 -0
- package/references/verification-levels.md +53 -0
- package/skills/deep/SKILL.md +76 -0
- package/skills/mission/SKILL.md +105 -0
- package/skills/question/SKILL.md +45 -0
- package/skills/quick/SKILL.md +81 -0
- package/skills/scout/SKILL.md +71 -0
- package/skills/ueye/SKILL.md +90 -0
- package/templates/mission-plan.md +46 -0
- package/templates/runtime-proof.md +54 -0
- package/templates/tuning-log.md +39 -0
- package/templates/ueye-review.md +62 -0
- package/templates/yam.project.md +71 -0
- package/yam.manifest.json +48 -0
package/package.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "yam-harness",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Progressive proof-first Codex harness: start fast, deepen deliberately, stay honest by design.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"author": "0kim0bos",
|
|
7
|
+
"homepage": "https://github.com/0kim0bos/yam#readme",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/0kim0bos/yam.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/0kim0bos/yam/issues"
|
|
14
|
+
},
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=18"
|
|
17
|
+
},
|
|
18
|
+
"bin": {
|
|
19
|
+
"yam": "bin/yam.js"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"AGENTS.md",
|
|
23
|
+
"COMMANDS.md",
|
|
24
|
+
"DECISIONS.md",
|
|
25
|
+
"LICENSE",
|
|
26
|
+
"README.md",
|
|
27
|
+
"ROADMAP.md",
|
|
28
|
+
"bin",
|
|
29
|
+
"references",
|
|
30
|
+
"skills",
|
|
31
|
+
"templates",
|
|
32
|
+
"yam.manifest.json"
|
|
33
|
+
],
|
|
34
|
+
"scripts": {
|
|
35
|
+
"install:skills": "node ./bin/yam.js install",
|
|
36
|
+
"uninstall:skills": "node ./bin/yam.js uninstall",
|
|
37
|
+
"status": "node ./bin/yam.js status",
|
|
38
|
+
"verify": "node ./bin/yam.js verify",
|
|
39
|
+
"doctor": "node ./bin/yam.js doctor",
|
|
40
|
+
"list": "node ./bin/yam.js list",
|
|
41
|
+
"examples": "node ./bin/yam.js examples",
|
|
42
|
+
"verify:self": "node --check ./bin/yam.js && node ./bin/yam.js verify && node ./bin/yam.js doctor",
|
|
43
|
+
"prepack": "npm run verify:self",
|
|
44
|
+
"pack:dry-run": "npm pack --dry-run",
|
|
45
|
+
"budget": "node ./bin/yam.js budget",
|
|
46
|
+
"measure": "node ./bin/yam.js measure",
|
|
47
|
+
"tools": "node ./bin/yam.js tools",
|
|
48
|
+
"proof": "node ./bin/yam.js proof",
|
|
49
|
+
"safety": "node ./bin/yam.js safety",
|
|
50
|
+
"detect": "node ./bin/yam.js detect",
|
|
51
|
+
"pack": "node ./bin/yam.js pack",
|
|
52
|
+
"memory": "node ./bin/yam.js memory",
|
|
53
|
+
"template": "node ./bin/yam.js template",
|
|
54
|
+
"tune-log": "node ./bin/yam.js tune-log",
|
|
55
|
+
"init-project": "node ./bin/yam.js init-project"
|
|
56
|
+
},
|
|
57
|
+
"keywords": [
|
|
58
|
+
"codex",
|
|
59
|
+
"harness",
|
|
60
|
+
"codex-skills",
|
|
61
|
+
"ai-agents",
|
|
62
|
+
"developer-tools",
|
|
63
|
+
"verification",
|
|
64
|
+
"ui-review",
|
|
65
|
+
"proof-first",
|
|
66
|
+
"skills",
|
|
67
|
+
"proof",
|
|
68
|
+
"ui"
|
|
69
|
+
],
|
|
70
|
+
"publishConfig": {
|
|
71
|
+
"access": "public"
|
|
72
|
+
},
|
|
73
|
+
"license": "MIT"
|
|
74
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Context Reuse
|
|
2
|
+
|
|
3
|
+
One purpose of `yam` is to avoid re-reading the whole project and re-planning from scratch every run.
|
|
4
|
+
|
|
5
|
+
Default order:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
1. Read project direction pack if present.
|
|
9
|
+
2. Read `.yam/memory/summary.md` only when repeated mistakes or direction changes matter.
|
|
10
|
+
3. Read the specific files needed for the request.
|
|
11
|
+
4. Reuse known commands and constraints from the pack.
|
|
12
|
+
5. Expand context only when evidence shows the pack is stale or incomplete.
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Preferred project pack:
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
yam.project.md
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
What it should contain:
|
|
22
|
+
|
|
23
|
+
- Product direction.
|
|
24
|
+
- Current UI/design direction.
|
|
25
|
+
- Tech stack.
|
|
26
|
+
- Important commands.
|
|
27
|
+
- Test/build expectations.
|
|
28
|
+
- Key directories.
|
|
29
|
+
- Things not to do.
|
|
30
|
+
- Current known risks.
|
|
31
|
+
- Recent decisions.
|
|
32
|
+
|
|
33
|
+
Optional memory summary:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
.yam/memory/summary.md
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Use it only for known wrong decisions, repeated mistakes, direction changes, and lessons that would otherwise be rediscovered.
|
|
40
|
+
|
|
41
|
+
Rules:
|
|
42
|
+
|
|
43
|
+
- Do not regenerate a broad plan when `yam.project.md` already answers the direction question.
|
|
44
|
+
- Do not reread architecture docs unless the task touches architecture.
|
|
45
|
+
- Do not reread full design docs for tiny UI work when the pack has the relevant style direction.
|
|
46
|
+
- If the pack is stale, update the pack narrowly instead of carrying stale assumptions in chat.
|
|
47
|
+
- Keep the pack short; it is a context-saving artifact, not a second README.
|
|
48
|
+
- Do not read every `.yam/memory/records/*.json` file by default; use `yam memory summary`.
|
|
49
|
+
- Follow `references/markdown-management.md` when creating or updating markdown surfaces.
|
|
50
|
+
|
|
51
|
+
Suggested size:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
500 to 1200 words.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Truth rule:
|
|
58
|
+
|
|
59
|
+
If no project pack exists, say that direction was inferred from local files, not from a maintained project pack.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Current Docs Rule
|
|
2
|
+
|
|
3
|
+
Use current docs proof only when stale knowledge is a realistic risk.
|
|
4
|
+
|
|
5
|
+
## Require Current Docs Proof
|
|
6
|
+
|
|
7
|
+
Use Context7, official docs, or primary sources when the task depends on current behavior for:
|
|
8
|
+
|
|
9
|
+
- modern SDK/API syntax
|
|
10
|
+
- cloud services such as Supabase, Vercel, OpenAI, Stripe, or auth providers
|
|
11
|
+
- framework version behavior, migration, deprecation, or breaking changes
|
|
12
|
+
- CLI flags, deployment behavior, pricing/limits, security rules, or platform integrations
|
|
13
|
+
- user wording such as latest, current, recently changed, new version, official docs, migration, or upgrade
|
|
14
|
+
|
|
15
|
+
## Usually Skip
|
|
16
|
+
|
|
17
|
+
Do not force current-docs proof for:
|
|
18
|
+
|
|
19
|
+
- stable programming concepts
|
|
20
|
+
- local codebase pattern matching
|
|
21
|
+
- small copy/CSS/UI polish
|
|
22
|
+
- questions answered by the project pack or local source
|
|
23
|
+
- implementation that follows already-installed project conventions without external API uncertainty
|
|
24
|
+
|
|
25
|
+
## Output Line
|
|
26
|
+
|
|
27
|
+
Use one concise line:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
Current-docs proof: Context7/official docs checked for <SDK/service>; result applied to <decision>.
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Or:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
Current-docs proof: skipped because this was stable/local/non-SDK work.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Compared Baseline
|
|
40
|
+
|
|
41
|
+
Sneakoscope favors source-intelligence proof for current tool behavior.
|
|
42
|
+
|
|
43
|
+
ECC keeps research/context selective and low-context.
|
|
44
|
+
|
|
45
|
+
Karpathy-style minimalism says the rule is useful only when it changes the answer.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# DB/Supabase Safety Lite
|
|
2
|
+
|
|
3
|
+
This is an advisory proof-first trust layer, not a database scanner.
|
|
4
|
+
|
|
5
|
+
Use it when a prompt, command, migration, or code change touches database mutation, Supabase, RLS, production data, or schema changes.
|
|
6
|
+
|
|
7
|
+
## Risk Signals
|
|
8
|
+
|
|
9
|
+
Recommend `$deep` when you see:
|
|
10
|
+
|
|
11
|
+
- `DROP`, `TRUNCATE`, `DELETE FROM`, broad `UPDATE`, or `ALTER TABLE`.
|
|
12
|
+
- `supabase db reset`, `supabase db push`, migration generation, migration apply, or remote/linked project commands.
|
|
13
|
+
- ORM migration commands such as Prisma, Drizzle, Knex, or Sequelize migrations.
|
|
14
|
+
- RLS/policy/permission changes: `CREATE POLICY`, `ALTER POLICY`, `GRANT`, `REVOKE`.
|
|
15
|
+
- Production/remote signals: `prod`, `production`, `live`, `DATABASE_URL`, `service_role`, `--db-url`, `--linked`, `--remote`, or `--project-ref`.
|
|
16
|
+
|
|
17
|
+
## Guardrail
|
|
18
|
+
|
|
19
|
+
Before claiming safe:
|
|
20
|
+
|
|
21
|
+
- identify local/staging/production target
|
|
22
|
+
- prefer read-only inspection first
|
|
23
|
+
- require explicit user approval for destructive or production writes
|
|
24
|
+
- know the rollback or backup path when data can be lost
|
|
25
|
+
- run the smallest honest verification that matches the claim
|
|
26
|
+
|
|
27
|
+
## Truth Language
|
|
28
|
+
|
|
29
|
+
- Pattern detection is `assumed`, not proof.
|
|
30
|
+
- Read-only inspection can be `partial` or `verified` for the inspected surface.
|
|
31
|
+
- A successful migration command is not automatically safe; it only proves that command execution completed.
|
|
32
|
+
- Do not claim production safety without environment evidence.
|
|
33
|
+
|
|
34
|
+
## Compared Baseline
|
|
35
|
+
|
|
36
|
+
Sneakoscope would likely gate destructive DB work more aggressively.
|
|
37
|
+
|
|
38
|
+
ECC would keep the check selective and evidence-bound.
|
|
39
|
+
|
|
40
|
+
Karpathy-style minimalism keeps this as a short rule and a small detector, not a full DB policy engine.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Doctor Scan
|
|
2
|
+
|
|
3
|
+
Doctor scan is the final mission pass that looks for false completion, stale context, hidden failures, and avoidable follow-up risk.
|
|
4
|
+
|
|
5
|
+
It is not another broad implementation pass.
|
|
6
|
+
|
|
7
|
+
## Checklist
|
|
8
|
+
|
|
9
|
+
Direction:
|
|
10
|
+
|
|
11
|
+
- `yam.project.md` was read when project direction matters.
|
|
12
|
+
- The implementation still matches product direction, UI direction, tech stack, and no-go rules.
|
|
13
|
+
- New complexity is justified by the mission scope.
|
|
14
|
+
|
|
15
|
+
Changed surface:
|
|
16
|
+
|
|
17
|
+
- Changed files are within the approved mission scope.
|
|
18
|
+
- No unrelated refactors or metadata churn were introduced.
|
|
19
|
+
- Any generated files or markdown artifacts are intentional.
|
|
20
|
+
|
|
21
|
+
Verification:
|
|
22
|
+
|
|
23
|
+
- The smallest honest checks were run.
|
|
24
|
+
- Failed or skipped checks are reported.
|
|
25
|
+
- Browser, screenshot, or visual claims have actual visual evidence.
|
|
26
|
+
- Runtime/tmux/process claims have PID, port, session, pane, log, or equivalent evidence when relevant.
|
|
27
|
+
|
|
28
|
+
Cleanup:
|
|
29
|
+
|
|
30
|
+
- Dev servers, watchers, tmux panes, or child processes are stopped or intentionally left running.
|
|
31
|
+
- Cleanup is not claimed unless exit/closure was checked.
|
|
32
|
+
- Remaining running processes are named.
|
|
33
|
+
|
|
34
|
+
Truth status:
|
|
35
|
+
|
|
36
|
+
- `verified` or `proven` is used only when evidence supports it.
|
|
37
|
+
- `partial`, `blocked`, `skipped`, or `assumed` is used when appropriate.
|
|
38
|
+
- Fixture or mock evidence is not promoted to real runtime proof.
|
|
39
|
+
|
|
40
|
+
Report hygiene:
|
|
41
|
+
|
|
42
|
+
- Final answer includes remaining tasks when real work remains.
|
|
43
|
+
- Fix-first items are listed before planned tasks when they can block or distort the next run.
|
|
44
|
+
- The report is concise enough to avoid wasting context in the next session.
|
|
45
|
+
|
|
46
|
+
## Output Shape
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
Doctor scan:
|
|
50
|
+
- Direction fit:
|
|
51
|
+
- Scope control:
|
|
52
|
+
- Verification:
|
|
53
|
+
- Runtime/cleanup:
|
|
54
|
+
- Truth status:
|
|
55
|
+
- Fix-first:
|
|
56
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Eye
|
|
2
|
+
|
|
3
|
+
`eye` is visual inspection for UI/UX quality.
|
|
4
|
+
|
|
5
|
+
Inputs:
|
|
6
|
+
|
|
7
|
+
- Screenshot.
|
|
8
|
+
- URL.
|
|
9
|
+
- Current local app screen.
|
|
10
|
+
- Reference image.
|
|
11
|
+
|
|
12
|
+
Review dimensions:
|
|
13
|
+
|
|
14
|
+
- Direction fit.
|
|
15
|
+
- Visual hierarchy.
|
|
16
|
+
- CTA clarity.
|
|
17
|
+
- Spacing and alignment.
|
|
18
|
+
- Contrast.
|
|
19
|
+
- Responsive behavior.
|
|
20
|
+
- Empty, loading, error, disabled states.
|
|
21
|
+
- Interaction affordance.
|
|
22
|
+
|
|
23
|
+
Output:
|
|
24
|
+
|
|
25
|
+
- P0: blocker.
|
|
26
|
+
- P1: major issue.
|
|
27
|
+
- P2: noticeable quality issue.
|
|
28
|
+
- P3: polish.
|
|
29
|
+
- Safe fix suggestions.
|
|
30
|
+
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Final Report
|
|
2
|
+
|
|
3
|
+
Every `yam` route should end with a compact handoff that helps the next run avoid re-reading and re-planning.
|
|
4
|
+
|
|
5
|
+
## Required Closing Check
|
|
6
|
+
|
|
7
|
+
Include these when they are useful and keep them short:
|
|
8
|
+
|
|
9
|
+
- What changed or what was found.
|
|
10
|
+
- What verification ran.
|
|
11
|
+
- What was not checked.
|
|
12
|
+
- Truth status, when verification or runtime claims matter.
|
|
13
|
+
- Remaining tasks.
|
|
14
|
+
- Fix-first items before planned tasks.
|
|
15
|
+
|
|
16
|
+
## Anti-False-Completion Check
|
|
17
|
+
|
|
18
|
+
Before final response, compare claim strength to evidence:
|
|
19
|
+
|
|
20
|
+
- Do not say `verified` unless a relevant check actually ran and passed.
|
|
21
|
+
- Do not say cleanup is complete unless exit/closure was checked or the process is intentionally left running.
|
|
22
|
+
- Do not say UI was reviewed unless a screen, screenshot, browser check, or equivalent visual evidence was inspected.
|
|
23
|
+
- Do not hide skipped or blocked checks.
|
|
24
|
+
|
|
25
|
+
Use `references/honest-completion.md` and `references/truth-matrix.md` when the route has meaningful verification claims.
|
|
26
|
+
|
|
27
|
+
## Remaining Tasks
|
|
28
|
+
|
|
29
|
+
Use this for work that still belongs to the current roadmap or request.
|
|
30
|
+
|
|
31
|
+
Examples:
|
|
32
|
+
|
|
33
|
+
- Implement the next UI state.
|
|
34
|
+
- Add browser verification.
|
|
35
|
+
- Move large component logic into a helper.
|
|
36
|
+
- Run build after a data-flow change.
|
|
37
|
+
|
|
38
|
+
## Fix-First Items
|
|
39
|
+
|
|
40
|
+
Use this for issues that should be considered before starting the next planned task because they can slow work, break verification, or distort product direction.
|
|
41
|
+
|
|
42
|
+
Examples:
|
|
43
|
+
|
|
44
|
+
- Current lint/build errors.
|
|
45
|
+
- Failing tests.
|
|
46
|
+
- Broken dev server.
|
|
47
|
+
- Stale `yam.project.md`.
|
|
48
|
+
- Active hooks or instruction files that conflict with the route.
|
|
49
|
+
- Warnings that keep obscuring real problems.
|
|
50
|
+
|
|
51
|
+
## Route Weight
|
|
52
|
+
|
|
53
|
+
For `$quick`, one short paragraph or a compact verification matrix is enough.
|
|
54
|
+
|
|
55
|
+
For `$ueye`, include source evidence, states/viewports checked, and P0-P3 issues only when they matter.
|
|
56
|
+
|
|
57
|
+
For `$deep` and `$mission`, include evidence, remaining risks, remaining tasks, and fix-first items.
|
|
58
|
+
|
|
59
|
+
Do not pad the final answer when there are no meaningful remaining tasks or fix-first items.
|
|
60
|
+
|
|
61
|
+
When budget drift matters, include or run `yam measure <route>` with approximate files, commands, report lines, and seconds.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Honest Completion
|
|
2
|
+
|
|
3
|
+
`yam` should prevent false completion without turning every task into a heavy proof ceremony.
|
|
4
|
+
|
|
5
|
+
## Completion Rule
|
|
6
|
+
|
|
7
|
+
Never claim that work is done, verified, cleaned up, visually checked, deployed, or fixed unless the matching evidence exists.
|
|
8
|
+
|
|
9
|
+
Use precise language:
|
|
10
|
+
|
|
11
|
+
- `done`: the requested edit or answer was completed.
|
|
12
|
+
- `verified`: an actual relevant check passed.
|
|
13
|
+
- `partial`: meaningful evidence exists, but not the full surface.
|
|
14
|
+
- `assumed`: inferred from code or context, with no execution evidence.
|
|
15
|
+
- `blocked`: the check could not run.
|
|
16
|
+
- `skipped`: intentionally not checked because it was not worth the cost.
|
|
17
|
+
|
|
18
|
+
## Default Guard
|
|
19
|
+
|
|
20
|
+
Every route should ask before final response:
|
|
21
|
+
|
|
22
|
+
- What did I actually change or answer?
|
|
23
|
+
- What evidence do I actually have?
|
|
24
|
+
- What did I not check?
|
|
25
|
+
- Is the truth status stronger than the evidence?
|
|
26
|
+
- Are there fix-first items before the next planned task?
|
|
27
|
+
|
|
28
|
+
## Lightweight By Default
|
|
29
|
+
|
|
30
|
+
For small work, the guard can be one sentence:
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
Verification: not run; change was limited to copy/CSS and inspected locally.
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
For larger work, include proof summary and residual risk.
|
|
37
|
+
|
|
38
|
+
## Runtime Guard
|
|
39
|
+
|
|
40
|
+
Runtime work needs stronger evidence because long-running processes can create false success:
|
|
41
|
+
|
|
42
|
+
- Record the command or process that was started.
|
|
43
|
+
- Record the PID, port, session, or tmux pane when available.
|
|
44
|
+
- Do not claim cleanup unless process exit or intended persistence is confirmed.
|
|
45
|
+
- Do not claim browser/visual verification unless a browser check, screenshot, or equivalent evidence exists.
|
|
46
|
+
|
|
47
|
+
## What yam Does Not Do By Default
|
|
48
|
+
|
|
49
|
+
- No automatic proof gates.
|
|
50
|
+
- No forced subagents.
|
|
51
|
+
- No automatic tmux for ordinary work.
|
|
52
|
+
- No release-blocking runtime proof unless the user chooses `$deep` or `$mission`.
|
|
53
|
+
- No full `$mission` claim without real subagent/team evidence; downgrade to `$deep`, or mark mission partial/blocked.
|
|
54
|
+
|
|
55
|
+
Compared baseline:
|
|
56
|
+
|
|
57
|
+
- Sneakoscope would collect stronger physical proof and gate completion more aggressively.
|
|
58
|
+
- ECC would keep evidence boundaries and report what is known vs inferred.
|
|
59
|
+
- Karpathy-style minimalism would keep the rule short and obeyable.
|
|
60
|
+
|
|
61
|
+
`yam` keeps the guard explicit, cheap, and route-aware.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Hook Lite
|
|
2
|
+
|
|
3
|
+
`yam-lite` is an opt-in advisory hook.
|
|
4
|
+
|
|
5
|
+
It exists to keep yam's direction present without turning every request into a proof gate.
|
|
6
|
+
It does not mean `yam` itself should stay shallow; it only keeps the always-on layer small enough to preserve momentum.
|
|
7
|
+
|
|
8
|
+
## Contract
|
|
9
|
+
|
|
10
|
+
Allowed:
|
|
11
|
+
|
|
12
|
+
- Add short route guidance through `UserPromptSubmit` additional context.
|
|
13
|
+
- Remind the agent to check project direction and keep ordinary work moving.
|
|
14
|
+
- Remind the agent not to overclaim verification, cleanup, or visual evidence.
|
|
15
|
+
- Suggest `$quick`, `$ueye`, `$question`, `$scout`, `$deep`, or `$mission` based on obvious prompt signals.
|
|
16
|
+
- Mention a project pack or memory summary when present.
|
|
17
|
+
- Warn when `.sneakoscope` is active in the current project.
|
|
18
|
+
|
|
19
|
+
Not allowed:
|
|
20
|
+
|
|
21
|
+
- Run verification commands.
|
|
22
|
+
- Start tmux, browser QA, dev servers, or subagents.
|
|
23
|
+
- Block tools or permissions.
|
|
24
|
+
- Read broad project context.
|
|
25
|
+
- Force `$quick` or any other route.
|
|
26
|
+
- Install dependencies.
|
|
27
|
+
- Modify source files.
|
|
28
|
+
|
|
29
|
+
## Toggle
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
yam hook status --global
|
|
33
|
+
yam hook enable lite --global
|
|
34
|
+
yam hook disable lite --global
|
|
35
|
+
|
|
36
|
+
yam hook status --project /path/to/project
|
|
37
|
+
yam hook enable lite --project /path/to/project
|
|
38
|
+
yam hook disable lite --project /path/to/project
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Global hooks write to `~/.codex/hooks.json`.
|
|
42
|
+
|
|
43
|
+
Project hooks write to `<project>/.codex/hooks.json`.
|
|
44
|
+
|
|
45
|
+
`yam` backs up an existing hook file before enabling the lite hook.
|
|
46
|
+
|
|
47
|
+
## Compared Baseline
|
|
48
|
+
|
|
49
|
+
Sneakoscope uses hooks as a broad trust surface with route prep, tool evidence, permission gates, subagent evidence, and stop gates.
|
|
50
|
+
|
|
51
|
+
ECC favors selective setup and lower-context workflows.
|
|
52
|
+
|
|
53
|
+
Karpathy-style minimalism would avoid hooks unless the rule is short and changes behavior.
|
|
54
|
+
|
|
55
|
+
`yam` keeps this hook advisory-only so beginner momentum is preserved while the agent still receives a direction nudge. Deeper proof belongs in `$deep` and real team execution belongs in `$mission`, not in an always-on prompt hook.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Markdown Management
|
|
2
|
+
|
|
3
|
+
`yam` uses markdown as a small direction layer, not as an automatic control system.
|
|
4
|
+
|
|
5
|
+
## Compared Baseline
|
|
6
|
+
|
|
7
|
+
Sneakoscope:
|
|
8
|
+
|
|
9
|
+
- Creates and manages more markdown surfaces for agent control, route instructions, proof, and dashboards.
|
|
10
|
+
- Good for strict verification and anti-fake-work pressure.
|
|
11
|
+
- Risk: too much generated context and too much automatic intervention.
|
|
12
|
+
|
|
13
|
+
ECC:
|
|
14
|
+
|
|
15
|
+
- Splits markdown into modular instructions, rules, skills, and commands.
|
|
16
|
+
- Good for selective installation and low-context operation.
|
|
17
|
+
- Risk: too many optional files can still become noisy if installed wholesale.
|
|
18
|
+
|
|
19
|
+
Karpathy-style minimal harness:
|
|
20
|
+
|
|
21
|
+
- Keeps the core instruction document short and human-readable.
|
|
22
|
+
- Good for speed, obedience, and easy maintenance.
|
|
23
|
+
- Risk: weaker automated structure when work becomes broad or risky.
|
|
24
|
+
|
|
25
|
+
## yam Policy
|
|
26
|
+
|
|
27
|
+
- `yam.project.md` is project-local, short, and user-owned.
|
|
28
|
+
- `SKILL.md` files are route instructions managed by the `yam` source.
|
|
29
|
+
- `references/*.md` files are optional detail and should be opened only when needed.
|
|
30
|
+
- `.yam/*.md` files are optional logs, summaries, or proof notes.
|
|
31
|
+
- `.yam/memory/records/*.json` files are opt-in sparse memory records, not an automatic control layer.
|
|
32
|
+
- Do not install hooks or automations to keep markdown "fresh".
|
|
33
|
+
- Do not overwrite an existing project pack during normal init.
|
|
34
|
+
- Update stale project packs narrowly instead of re-reading the whole project every run.
|
|
35
|
+
|
|
36
|
+
## Project Pack Size
|
|
37
|
+
|
|
38
|
+
Target:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
500 to 1200 words
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Hard preference:
|
|
45
|
+
|
|
46
|
+
- Short enough to read before each route.
|
|
47
|
+
- Specific enough to prevent re-planning from scratch.
|
|
48
|
+
- Focused on product direction, UI direction, commands, risks, and no-go rules.
|
|
49
|
+
|
|
50
|
+
## Write Rules
|
|
51
|
+
|
|
52
|
+
- Create `yam.project.md` only when missing.
|
|
53
|
+
- Never replace a user-edited pack without explicit approval.
|
|
54
|
+
- If command detection changes, report the new command and let the user or route update the pack narrowly.
|
|
55
|
+
- Keep generated sections clearly marked.
|
|
56
|
+
- Prefer one project pack over multiple competing instruction files.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Memory
|
|
2
|
+
|
|
3
|
+
`yam memory` is an opt-in, project-local memory layer.
|
|
4
|
+
|
|
5
|
+
It borrows only the lightest useful parts from heavier harnesses:
|
|
6
|
+
|
|
7
|
+
- Sneakoscope TriWiki: sparse records, one file per claim, deliberate forgetting instead of injecting every old claim.
|
|
8
|
+
- Sneakoscope wrongness memory: remember repeated mistakes, wrong decisions, stale assumptions, and overconfident claims.
|
|
9
|
+
- ECC research style: separate evidence, inference, and recommendation.
|
|
10
|
+
- Karpathy-style minimalism: keep the mechanism small enough to obey.
|
|
11
|
+
|
|
12
|
+
Storage:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
.yam/memory/records/<id>.json
|
|
16
|
+
.yam/memory/summary.md
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Use it for:
|
|
20
|
+
|
|
21
|
+
- Wrong decisions that should not be repeated.
|
|
22
|
+
- Repeated mistakes that waste time.
|
|
23
|
+
- Project direction changes.
|
|
24
|
+
- Lessons learned after a bug, failed implementation, or UX review.
|
|
25
|
+
- Verification command notes that should survive across sessions.
|
|
26
|
+
|
|
27
|
+
Do not use it for:
|
|
28
|
+
|
|
29
|
+
- Secrets, tokens, credentials, local private paths that should not be committed, or personal data.
|
|
30
|
+
- Full proof logs.
|
|
31
|
+
- Large research reports.
|
|
32
|
+
- Automatic gates or route enforcement.
|
|
33
|
+
- Every minor thought from a session.
|
|
34
|
+
|
|
35
|
+
Commands:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
yam memory init .
|
|
39
|
+
yam memory add . --kind wrong_decision --summary "..." --evidence "..." --action "..."
|
|
40
|
+
yam memory list .
|
|
41
|
+
yam memory summary .
|
|
42
|
+
yam memory resolve . mem-YYYYMMDD... --note "..."
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Kinds:
|
|
46
|
+
|
|
47
|
+
- `wrong_decision`
|
|
48
|
+
- `repeat_mistake`
|
|
49
|
+
- `direction_change`
|
|
50
|
+
- `lesson`
|
|
51
|
+
- `risk`
|
|
52
|
+
- `command`
|
|
53
|
+
|
|
54
|
+
Route behavior:
|
|
55
|
+
|
|
56
|
+
- Routes may read `.yam/memory/summary.md` only when the task is likely to repeat a known mistake or touch project direction.
|
|
57
|
+
- Routes should not read all memory records by default.
|
|
58
|
+
- If memory is stale or noisy, report that as a fix-first item instead of expanding context.
|
|
59
|
+
- Memory never proves completion by itself; it only informs direction and avoids repeated waste.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Mission
|
|
2
|
+
|
|
3
|
+
`mission` is the real-subagent/team execution route for approved plans.
|
|
4
|
+
|
|
5
|
+
It exists so `deep` can stay single-agent and verification-centered while `mission` owns real team/subagent implementation and cross-verification.
|
|
6
|
+
|
|
7
|
+
Use it when:
|
|
8
|
+
|
|
9
|
+
- The user has approved a broad implementation plan.
|
|
10
|
+
- Real subagent/team lanes would reduce risk.
|
|
11
|
+
- Implementation, review, visual/runtime verification, and final proof need to happen together.
|
|
12
|
+
- The work is too broad for `quick` or `ueye`.
|
|
13
|
+
|
|
14
|
+
Do not use it for:
|
|
15
|
+
|
|
16
|
+
- Small edits.
|
|
17
|
+
- Ordinary scoped feature work.
|
|
18
|
+
- Pure research.
|
|
19
|
+
- Pure verification or single-agent heavy work.
|
|
20
|
+
- Tasks without an approved plan or clear acceptance criteria.
|
|
21
|
+
- Tasks where real subagents are unavailable, unsafe, or not worth the token/time cost; use `deep` instead.
|
|
22
|
+
|
|
23
|
+
Role model:
|
|
24
|
+
|
|
25
|
+
- Implementer: makes the scoped changes.
|
|
26
|
+
- Reviewer: checks correctness, risk, architecture, and direction.
|
|
27
|
+
- UX/browser verifier: checks UI behavior, browser state, screenshots, or flows when relevant.
|
|
28
|
+
- Doctor/scanner: checks direction fit, scope control, command output, stale instructions, runtime/cleanup evidence, false-completion risk, and remaining fix-first items.
|
|
29
|
+
|
|
30
|
+
Subagent policy:
|
|
31
|
+
|
|
32
|
+
- Mission requires real subagent/team orchestration to be considered a full mission.
|
|
33
|
+
- Use mission when the environment supports subagents and the work can be split into independent implementation, review, or verification lanes.
|
|
34
|
+
- If the task is bounded, the split is artificial, or the token/time cost would exceed the safety benefit, choose `deep` instead.
|
|
35
|
+
- If the user invoked mission but real subagents are unavailable or unsafe, downgrade to `deep` by default and report `subagent decision: downgraded_to_deep`.
|
|
36
|
+
- If the user explicitly insists on mission despite missing subagents, mark the result `partial` or `blocked`; do not treat self-review as team execution.
|
|
37
|
+
- The final proof must record the subagent decision: `used`, `downgraded_to_deep`, `unavailable_partial`, or `blocked`, with the reason.
|
|
38
|
+
|
|
39
|
+
Runtime use:
|
|
40
|
+
|
|
41
|
+
- Mission may use deep runtime verification when needed, but runtime proof alone does not make a mission if subagents were not used.
|
|
42
|
+
- tmux is recommended when a persistent dev server, watcher, or browser QA loop materially improves evidence.
|
|
43
|
+
- tmux is not mandatory for every mission.
|
|
44
|
+
|
|
45
|
+
Completion rule:
|
|
46
|
+
|
|
47
|
+
- No verified claim without evidence.
|
|
48
|
+
- No cleanup claim without exit/closure confirmation or intentional persistence.
|
|
49
|
+
- No visual claim without screen, browser, or screenshot evidence.
|
|
50
|
+
|
|
51
|
+
Suggested prompt:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
$mission
|
|
55
|
+
아래 구현 계획은 확정됐어.
|
|
56
|
+
|
|
57
|
+
목표:
|
|
58
|
+
-
|
|
59
|
+
|
|
60
|
+
범위:
|
|
61
|
+
-
|
|
62
|
+
|
|
63
|
+
금지사항:
|
|
64
|
+
-
|
|
65
|
+
|
|
66
|
+
Acceptance criteria:
|
|
67
|
+
-
|
|
68
|
+
|
|
69
|
+
실제 subagent/team 단위로 구현하고,
|
|
70
|
+
implementer/reviewer/UX verifier/doctor lane으로 교차 검증해줘.
|
|
71
|
+
필요하면 tmux/dev server/browser QA/process cleanup proof까지 사용해줘.
|
|
72
|
+
최종 보고에는 evidence, truth status, cleanup status, fix-first items, remaining tasks를 포함해줘.
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Doctor scan:
|
|
76
|
+
|
|
77
|
+
Use `references/doctor-scan.md` before final completion.
|
|
78
|
+
Keep the scan short, but cover direction fit, scope control, verification, runtime/cleanup, truth status, and fix-first items.
|
|
79
|
+
|
|
80
|
+
Compared baseline:
|
|
81
|
+
|
|
82
|
+
- Sneakoscope would likely make this a Team route with stronger proof gates and required agent evidence.
|
|
83
|
+
- ECC would split role responsibilities and keep evidence boundaries.
|
|
84
|
+
- Karpathy-style minimalism would avoid adding this unless it clearly replaces a confusing middle route.
|
|
85
|
+
|
|
86
|
+
`yam` uses mission to replace the old standalone runtime route with a clearer heavy execution route.
|