Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
181 commits
Select commit Hold shift + click to select a range
d7f568b
test(planning): RED — pin the two plan bugs issue #7 named as must-fi…
NetDevAutomate Sep 15, 2026
c3ac776
docs(plan-integration): council planning round 1 — brief, three seats…
NetDevAutomate Sep 15, 2026
e74c2a6
fix(planning): honour record_checkpoint's boolean in evaluate_and_record
NetDevAutomate Sep 15, 2026
29e2ae0
test(planning): RED — PlanApplication seam contract (T1.1)
NetDevAutomate Sep 15, 2026
29aeaf6
feat(planning): PlanApplication seam — one readiness gate for every d…
NetDevAutomate Sep 15, 2026
1aed49f
refactor(web): plan routes delegate to PlanApplication; route-local g…
NetDevAutomate Sep 15, 2026
38f6f41
refactor(cli): plan list/show/status read and write through PlanAppli…
NetDevAutomate Sep 15, 2026
0835c7c
test(planning): cross-surface parity — CLI and Web refuse activation …
NetDevAutomate Sep 15, 2026
7fac20c
docs(spec): activation is readiness-gated on every entry path — delta…
NetDevAutomate Sep 15, 2026
01a8348
docs(spec): tick T1.7 with the gate results for Phase 0 + Phase 1
NetDevAutomate Sep 15, 2026
3ed02a6
docs(spec): mark plan-application-seam in flight (deferred from the c…
NetDevAutomate Sep 15, 2026
ab3861b
test(planning): RED — council review 1 findings F1, F1b, F4 (resultin…
NetDevAutomate Sep 15, 2026
e50106a
fix(planning): F1/F1b — compound PATCH is one RevisePlan, readiness o…
NetDevAutomate Sep 15, 2026
dd9be5b
fix(planning): F4 — a taken id is a conflict before the incoming docu…
NetDevAutomate Sep 15, 2026
075104c
fix(planning): F3 — translate every store error at the seam; the CLI …
NetDevAutomate Sep 15, 2026
3d9476d
fix(planning): F2 — PlanningBrief is deep-frozen by construction, not…
NetDevAutomate Sep 15, 2026
68d899b
fix(planning): F5 — import identity precedence is explicit; the id is…
NetDevAutomate Sep 15, 2026
ebf3553
test(planning): F6 — Bug B regression coverage on an isolated checkpo…
NetDevAutomate Sep 15, 2026
dcb3b7d
test(planning): pin that a bad field beside a status change writes no…
NetDevAutomate Sep 15, 2026
6e342ff
docs(spec): council review 1 — resulting-document scenarios, bounded …
NetDevAutomate Sep 15, 2026
1f97352
docs(plan-integration): council review 1 + §5 receipt review — briefs…
NetDevAutomate Sep 15, 2026
be499d8
build(security): trufflehog pre-commit hook with redacted output; ful…
NetDevAutomate Sep 15, 2026
f8cca68
docs(adr): ADR-0011 — record the executed PR #19 close and archive ta…
NetDevAutomate Sep 15, 2026
a486230
merge: main into fix/plan-integration-bugs — trufflehog hook, ADR-001…
NetDevAutomate Sep 15, 2026
9285260
test(planning): RED — Phase 2 seam contract for SetMilestone, DeleteP…
NetDevAutomate Sep 15, 2026
fed155c
feat(planning): SetMilestone, DeletePlan, assess(), get_active_guidan…
NetDevAutomate Sep 15, 2026
ccfe1d1
test(web): RED — plan routes report both recording sinks, set milesto…
NetDevAutomate Sep 15, 2026
da0026f
refactor(web): evaluate, milestone toggle and DELETE go through the seam
NetDevAutomate Sep 15, 2026
8fed612
test(cli): RED — plan new/interview/evaluate/milestone/record/reindex…
NetDevAutomate Sep 15, 2026
b386571
test(acceptance): seed memory.default_scope so a scratch HOME can sta…
NetDevAutomate Sep 15, 2026
6251e93
refactor(cli): every plan command goes through the seam; no storage i…
NetDevAutomate Sep 15, 2026
95d74a8
test(mcp): RED — record_plan_learning is one RevisePlan through the seam
NetDevAutomate Sep 15, 2026
45ea1fc
refactor(mcp): record_plan_learning applies RevisePlan(learning_recor…
NetDevAutomate Sep 15, 2026
37862de
fix(acceptance): scrub inherited STUDYLOOP_* pointers from the scratc…
NetDevAutomate Sep 15, 2026
5693e35
test(architecture): guard — adapters import study plans only through …
NetDevAutomate Sep 15, 2026
00436f6
feat(acceptance): opt-in real-harness-auth mode + recorded harness-ev…
NetDevAutomate Sep 16, 2026
dcb1177
docs(spec): Phase 2 deltas — idempotent milestone set, confirmed dele…
NetDevAutomate Sep 16, 2026
fe7534d
fix(session): only pre-trust the session dir in Claude settings for a…
NetDevAutomate Sep 16, 2026
be4638d
docs(architecture): Archify spec for the plan seam; tick Phase 2 task…
NetDevAutomate Sep 16, 2026
bb59a31
fix(acceptance): give the live lane a module timeout that clears its …
NetDevAutomate Sep 16, 2026
9d37fc2
test(web-ui): RED — plans panel relays a partial checkpoint recording
NetDevAutomate Sep 16, 2026
b42d3b3
fix(web-ui): plans panel shows a partial checkpoint recording instead…
NetDevAutomate Sep 16, 2026
f0edce6
feat(adapters): pre-trust the session dir in Grok Build's trusted_fol…
NetDevAutomate Sep 16, 2026
d755237
docs(plan-integration): council review 2 — brief and three code-seat …
NetDevAutomate Sep 16, 2026
d358197
test: isolate GROK_HOME for the unit suite and watch Grok's trusted_f…
NetDevAutomate Sep 16, 2026
18fb4f0
test(planning): RED — review-2 F1: an identical retry writes nothing
NetDevAutomate Sep 16, 2026
979956d
fix(planning): an identical SetMilestone or a duplicate-only learning…
NetDevAutomate Sep 16, 2026
1381da2
test(planning): RED — review-2 F2: recording a checkpoint re-saves th…
NetDevAutomate Sep 16, 2026
71d2402
fix(planning): assess() gates an active document before recording; re…
NetDevAutomate Sep 16, 2026
f034d5d
docs(receipts): harness release evidence for pi, OpenCode and Grok Bu…
NetDevAutomate Sep 16, 2026
5a2f046
feat(harnesses): promote pi to the core tier; pin the documented spli…
NetDevAutomate Sep 16, 2026
090e0b6
fix(adapters): gate Grok's trusted_folders pre-write behind an explic…
NetDevAutomate Sep 16, 2026
b671f69
test(planning): RED — review-2 G1: guidance names readiness blockers …
NetDevAutomate Sep 16, 2026
3b23111
fix(planning): review-2 G1 — ActivePlanGuidance carries the plan's Re…
NetDevAutomate Sep 16, 2026
5eef77a
test(planning): RED — review-2 G2: guidance carries one effective dat…
NetDevAutomate Sep 16, 2026
9a066ac
fix(planning): review-2 G2 — one effective date for the whole guidanc…
NetDevAutomate Sep 16, 2026
cdc4ab3
test(planning): RED — review-2 G3: match_keys is a sorted, de-duplica…
NetDevAutomate Sep 16, 2026
534e959
fix(planning): review-2 G3 — match_keys is a sorted, de-duplicated tu…
NetDevAutomate Sep 16, 2026
68be59a
test(planning): RED — review-2 G4: guidance uses storage identity, no…
NetDevAutomate Sep 16, 2026
2707d05
fix(planning): review-2 G4 — guidance enumerates by storage id and lo…
NetDevAutomate Sep 16, 2026
6bd2654
test(planning): RED — review-2 G5: `created` is the mutation's outcom…
NetDevAutomate Sep 16, 2026
e62487b
fix(planning): review-2 G5 — the revision reports its learning-record…
NetDevAutomate Sep 16, 2026
de74565
fix(web): review-2 G6 — withdraw the false retry-safety claim on the …
NetDevAutomate Sep 16, 2026
181ef51
test(architecture): RED — review-2 G7: the guard misses wildcard, who…
NetDevAutomate Sep 16, 2026
59ab1e2
fix(architecture): review-2 G7 — the guard rejects wildcard, whole-pa…
NetDevAutomate Sep 16, 2026
2877ed7
test(planning): RED — review-2 G8: the sink failure matrix, and "both…
NetDevAutomate Sep 16, 2026
def5c56
fix(planning): review-2 G8 — a checkpoint that landed nowhere is "not…
NetDevAutomate Sep 16, 2026
a292331
test(planning): RED — review-2 G9: lenient row leaves are strings; ne…
NetDevAutomate Sep 16, 2026
b65c671
fix(planning): review-2 G9 — a lenient row leaf is always a string
NetDevAutomate Sep 16, 2026
0a20a79
docs(plan-integration): council review 2 arbitration — GATE: ACCEPT
NetDevAutomate Sep 16, 2026
848f413
test(now): T3.1 — golden of the no-active-plan `now` emit, captured p…
NetDevAutomate Sep 16, 2026
0c4d916
test(session): RED — start purpose, one persona resolver, planning br…
NetDevAutomate Sep 16, 2026
484db04
test(mcp): RED — six study-plan tools of design §4 (T3.6)
NetDevAutomate Sep 16, 2026
6e5af8c
test(now): RED — T3.2 nine ranking rules of the plan-aware `now`
NetDevAutomate Sep 16, 2026
eb28a1f
test(mcp): bind the seam spies as methods so delegation asserts can run
NetDevAutomate Sep 16, 2026
5a03b09
feat(mcp): six study-plan tools as thin adapters over the seam (T3.7)
NetDevAutomate Sep 16, 2026
0f1b3d0
feat(now): plan-aware ranking per design §3 — T3.3 GREEN
NetDevAutomate Sep 16, 2026
4fc5125
feat(session): start purpose, one persona resolver, planning brief (T…
NetDevAutomate Sep 16, 2026
b9e1e55
docs(spec): session purpose + persona resolution deltas; tick T3.8/T3.9
NetDevAutomate Sep 16, 2026
d201338
test(now): RED — renderers show plan relevance and energy deferral
NetDevAutomate Sep 16, 2026
9717f0a
docs(spec): mcp-server delta — study-plan discovery and authoring tools
NetDevAutomate Sep 16, 2026
bd919d5
docs(mcp): list the study-plan tools an agent can call
NetDevAutomate Sep 16, 2026
df33690
feat(now): renderers show plan relevance and energy deferral — GREEN
NetDevAutomate Sep 16, 2026
2685316
docs(spec): #10 plan-aware now — delta spec, D-16 rubric receipt, tas…
NetDevAutomate Sep 16, 2026
362edf5
docs(plan-integration): tick T3.6/T3.7 with commits, RED evidence and…
NetDevAutomate Sep 16, 2026
59de845
merge: Phase 3 — feat/p3-now into fix/plan-integration-bugs
NetDevAutomate Sep 16, 2026
86d39cb
merge: Phase 3 — feat/p3-mcp into fix/plan-integration-bugs
NetDevAutomate Sep 16, 2026
575e26f
merge: Phase 3 — feat/p3-purpose into fix/plan-integration-bugs
NetDevAutomate Sep 16, 2026
03ffd5d
docs(council): brief for code review 3 — Phase 3 (#10 ∥ #11 ∥ #13a) a…
NetDevAutomate Sep 16, 2026
05d5d73
test(now): RED — refs on unready or energy-deferred plans must not na…
NetDevAutomate Sep 16, 2026
64dc09f
fix(now): a plan-related ref names the next milestone only for an eli…
NetDevAutomate Sep 16, 2026
2eae326
test(now): RED — hostile plan text must render literally; the engine …
NetDevAutomate Sep 16, 2026
aafc3eb
fix(cli): 'studyloop now' escapes learner-authored text before Rich m…
NetDevAutomate Sep 16, 2026
68ef883
test(session): RED — hostile history text must not open a heading ins…
NetDevAutomate Sep 16, 2026
1a32492
fix(session): the planning brief quotes every learner value on one li…
NetDevAutomate Sep 16, 2026
0adc65e
test(planning): RED — CreatePlan.answers is a snapshot the caller can…
NetDevAutomate Sep 16, 2026
3880e30
feat(planning): CreatePlan snapshots its answers at construction — GREEN
NetDevAutomate Sep 16, 2026
ecbeba4
test(session): brief failure pinned on both transports; purpose never…
NetDevAutomate Sep 16, 2026
1dd97f5
test(now): rule pins the ten engine tests did not carry; RED — a guid…
NetDevAutomate Sep 16, 2026
5ba6be0
fix(now): log the guidance read failure with its traceback before deg…
NetDevAutomate Sep 16, 2026
7302b88
test(cli): RED — 'studyloop recap today' panel shows the engine's pla…
NetDevAutomate Sep 16, 2026
e385944
feat(cli): 'recap today' panel prints the engine's plan context — GREEN
NetDevAutomate Sep 16, 2026
ac34c63
test(web-ui): RED — Today card renders the engine's plan warnings
NetDevAutomate Sep 16, 2026
014d69e
feat(web-ui): Today card shows the engine's plan warnings — GREEN
NetDevAutomate Sep 16, 2026
c27a34d
docs(spec): review-3 corrections — browse order, empty plan_id, rende…
NetDevAutomate Sep 16, 2026
4f7a5e6
test(mcp): RED — get_next_action accepts interleave, validated, forwa…
NetDevAutomate Sep 16, 2026
c30330a
feat(mcp): get_next_action(..., interleave='off') — MCP interleave pa…
NetDevAutomate Sep 16, 2026
65bde13
test(mcp): parity test expects the forwarded interleave='off' (T3.5 f…
NetDevAutomate Sep 16, 2026
205819c
docs(council): review-3 receipts and arbitration — GATE: ACCEPT; tick…
NetDevAutomate Sep 16, 2026
60b1492
test(persona): RED — architect persona must name the nine MCP plan to…
NetDevAutomate Sep 16, 2026
1a56b85
test(mcp): RED — three progression tools, record_plan_learning fold p…
NetDevAutomate Sep 16, 2026
b1e11e7
feat(mcp): set_study_plan_milestone, evaluate_study_plan, delete_stud…
NetDevAutomate Sep 16, 2026
6ba7675
feat(persona): architect prefers the nine MCP plan tools, shells out …
NetDevAutomate Sep 16, 2026
a1772b6
docs(spec): mcp-server delta — study-plan progression and deletion to…
NetDevAutomate Sep 16, 2026
0955ac7
docs(spec): architect-persona MCP-preference requirement in agent-ada…
NetDevAutomate Sep 16, 2026
5fd14b6
merge: Phase 4 — feat/p4-mcp12 into fix/plan-integration-bugs
NetDevAutomate Sep 16, 2026
b2f37fa
merge: Phase 4 — feat/p4-13b into fix/plan-integration-bugs
NetDevAutomate Sep 16, 2026
e6d3b7d
docs(council): brief for code review 4 — Phase 4 (#12 three MCP tools…
NetDevAutomate Sep 16, 2026
f30ee11
test(session): RED — the planning brief has a delivery budget (counci…
NetDevAutomate Sep 16, 2026
8f9b601
feat(session): bound the planning brief — rows per key, plans, value …
NetDevAutomate Sep 16, 2026
5e085f0
test(phase4): exact nine-in-registry pin, real in-process inventory t…
NetDevAutomate Sep 16, 2026
aa46373
test(mcp): writer tripwires beside the byte-equality proofs for the t…
NetDevAutomate Sep 16, 2026
5ff4821
test(persona): RED — the architect persona's runtime claims must be t…
NetDevAutomate Sep 16, 2026
cf78be4
docs(persona): the architect's runtime claims made true — signatures,…
NetDevAutomate Sep 16, 2026
d592f9a
docs(council): review-4 receipts and arbitration — Phase 4 accepted a…
NetDevAutomate Sep 16, 2026
b820c4b
test(web): RED — the 'Plan with architect' journey from the Plans vie…
NetDevAutomate Sep 16, 2026
7ad3994
feat(web): 'Plan with architect' beside New plan — one start path, on…
NetDevAutomate Sep 16, 2026
abc7f37
test(web): give the architect journey a port of its own (18626)
NetDevAutomate Sep 16, 2026
1e1a568
docs(spec): web-ui delta 'Plan with architect journey'; study-plans.m…
NetDevAutomate Sep 16, 2026
87afdcd
test(docs): RED — the plan integration's public claims are pinned to …
NetDevAutomate Sep 16, 2026
bdc559d
docs(plans): the public claims match the shipped boundary — pinned to…
NetDevAutomate Sep 16, 2026
b02bd63
test(verify): RED — the plan-integration verification script's regist…
NetDevAutomate Sep 16, 2026
1129b83
feat(verify): scripts/verify/plan_integration.py — the receipt is the…
NetDevAutomate Sep 16, 2026
f51d511
test(journey): the combined Web + MCP plan journey in one process (#1…
NetDevAutomate Sep 16, 2026
a69867b
test(uat): the three study-plan doors as strict sign-off cells with a…
NetDevAutomate Sep 16, 2026
3159efe
docs(uat): redacted summary of the plan-journeys sign-off run at a698…
NetDevAutomate Sep 16, 2026
e605a83
fix(verify): parse pytest's bare -q summary line, not only the barred…
NetDevAutomate Sep 16, 2026
dcfd44e
docs(archify): plan-integration diagram shows the final structure — n…
NetDevAutomate Sep 16, 2026
fd10789
docs(closeout): draft the #7–#15 close-out — every criterion mapped t…
NetDevAutomate Sep 16, 2026
a955ff0
docs(tasks): tick T1.6, review 1, T3.4 (verdict = owner action), T6.1…
NetDevAutomate Sep 16, 2026
f0d01d9
test(docs): RED — council review 5's docs findings pinned before the …
NetDevAutomate Sep 16, 2026
2911da1
test(persona,verify): RED — the fallback table's phantom Web UI door …
NetDevAutomate Sep 16, 2026
e151885
docs(plan-integration): council review 5 — docs, specs and persona sa…
NetDevAutomate Sep 16, 2026
e67f176
test(plans): a failed index refresh keeps the document; reindex() rec…
NetDevAutomate Sep 16, 2026
fff69c6
docs(plan-integration): council review 5 — three seats, manifest and …
NetDevAutomate Sep 16, 2026
69740be
fix(e2e): the plan-journey server runs with the encoder warm off; fir…
NetDevAutomate Sep 16, 2026
8c4ece4
docs(receipts): verify-69740be5.json — 29/29 ok, exit 0 (#15, T6.2, D…
NetDevAutomate Sep 16, 2026
7f836f5
chore(openspec): archive plan-application-seam — six delta specs prom…
NetDevAutomate Sep 16, 2026
8498cf2
test(e2e,uat): the plan-journey worlds remove themselves (#15 DoD "no…
NetDevAutomate Sep 16, 2026
0e43a35
docs(closeout): refresh the #7–#15 close-out DRAFT after review 5, th…
NetDevAutomate Sep 16, 2026
cb178df
docs(closeout): feat/clean-start deleted locally — its tip is the arc…
NetDevAutomate Sep 16, 2026
1f304a5
merge: feat/harness-tier-promotion into fix/plan-integration-bugs — i…
NetDevAutomate Sep 16, 2026
33e70f2
test(docs): word-anchor the OKF/ontology token contract — TestGrokFol…
NetDevAutomate Sep 16, 2026
0be141b
fix(verify): advance the late protected-files base to the harness mer…
NetDevAutomate Sep 16, 2026
ab8b3f4
docs(receipts): verification receipts at the finished tip — 28/29 (la…
NetDevAutomate Sep 16, 2026
f060f77
docs(receipts): D-16 rubric scored by the owner — 3 yes, 2 findings, …
NetDevAutomate Sep 16, 2026
1565234
docs(plan-integration): handover for the follow-on programme — owner …
NetDevAutomate Sep 16, 2026
0a88d07
docs(plan-integration): close T3.4b — the D-16 rubric is scored, the …
NetDevAutomate Sep 16, 2026
222db4a
docs(openspec): open plan-integration-followons — items 1–5 as TDD ta…
NetDevAutomate Sep 16, 2026
b620a7c
test(agents): RED — architect definitions carry the plan tools in the…
NetDevAutomate Sep 16, 2026
f5c2057
fix(agents): make the Kiro mentor's MCP grants take effect — @studylo…
NetDevAutomate Sep 16, 2026
8a80c7d
feat(agents): grant the Kiro and Claude architects the plan tools — e…
NetDevAutomate Sep 16, 2026
fb48a8b
docs(agents): the install doc states the granted architect shape; Gro…
NetDevAutomate Sep 16, 2026
71a7489
test(web): RED — the architect door's brain dump travels in the brief…
NetDevAutomate Sep 16, 2026
9a132ae
feat(web): the architect door carries the learner's brain dump into t…
NetDevAutomate Sep 16, 2026
e84ed23
docs(plan-integration): mid-programme handover — items 1–2 landed, it…
NetDevAutomate Sep 16, 2026
bfe0695
fix(studyloop): an ancestor .env the process cannot stat no longer ki…
NetDevAutomate Sep 12, 2026
1812275
docs(receipts): Kiro tools probe re-run on kiro-cli 2.22.0 — both rul…
NetDevAutomate Sep 17, 2026
2054646
test(plan): RED — husk discovery and `plan repair <id>` (item 3, D-C)
NetDevAutomate Sep 17, 2026
6f05be5
docs(openspec): tick T3.1 — item 3 RED committed (20546465)
NetDevAutomate Sep 17, 2026
b6af366
feat(plan): husk discovery and `plan repair <id>` — GREEN (item 3, D-C)
NetDevAutomate Sep 17, 2026
219fa76
docs(openspec): tick T3.2 (GREEN b6af366a); record GREEN-time decisio…
NetDevAutomate Sep 17, 2026
35d890e
test(plan): RED — the mission is revisable through the one gate (item…
NetDevAutomate Sep 17, 2026
653e825
feat(plan): the mission is revisable through the one gate — GREEN (it…
NetDevAutomate Sep 17, 2026
44899c5
docs(openspec): tick T3b.0–T3b.2 (RED 35d890ef, GREEN 653e825b); desi…
NetDevAutomate Sep 17, 2026
112c98b
fix(doctor): a missing pinned exporter on a fresh install is a warnin…
NetDevAutomate Sep 17, 2026
01990a9
test(acceptance): skip an unselected harness lane at collection, befo…
NetDevAutomate Sep 17, 2026
6b8383b
test(eval-arms): keep the hermetic scope config through the transport…
NetDevAutomate Sep 17, 2026
626ea12
fix(web): a planning launch waits for the picker's options before jud…
NetDevAutomate Sep 17, 2026
d757e1d
ci(e2e): raise the job ceiling to 40 minutes — the suite outgrew 25
NetDevAutomate Sep 17, 2026
46262d2
test(e2e): wait for the active Second Brain card before counting it
NetDevAutomate Sep 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,14 @@ jobs:
# defects were hiding in there: a 500 from a file-deletion race in session
# teardown, and a 200ms sleep racing a 187ms CSS fade.
runs-on: ubuntu-latest
timeout-minutes: 25
# Budget, measured not guessed: main's last green e2e (run 34160855304,
# 2026-09-07) ran 515 tests in 14m23s inside a 25-minute ceiling; the
# plan-integration branch runs 567 in 21m42s (run 35216220593) and was
# killed by that same ceiling at 25m16s with the test matrix green (run
# 35217712505, 2026-09-17). Forty minutes is ~1.6x the measured run --
# still a real guard against a hung browser, no longer a coin flip on
# runner speed. Revisit when the suite next grows by a tenth.
timeout-minutes: 40
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
Expand Down
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,16 @@ docs/architecture/session-memory/*
# Receipts (adapter-scope decisions, measurement records) are small Markdown/JSON
# and must be tracked; same negation as feat/knowledge-proof so the branches merge.
!docs/architecture/session-memory/receipts/
# Un-ignored 2026-09-15 — plan-integration programme record (issues #7–#15): council
# briefs, seat receipts, arbitration, verification receipts and the archify spec.
# Same shape as session-memory above: small Markdown/JSON only; any delivered
# HTML stays ignored and regenerates from the spec via `archify deliver`.
!docs/architecture/plan-integration/
docs/architecture/plan-integration/*
!docs/architecture/plan-integration/council/
!docs/architecture/plan-integration/receipts/
!docs/architecture/plan-integration/*.architecture.json
!docs/architecture/plan-integration/*.md

# Demo recordings (large, local-only)
demos/
Expand Down
30 changes: 29 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,20 @@ repos:
# by design -- exactly what a "Hex High Entropy String" detector is
# built to flag, and exactly what it should ignore here: there is no
# secret to leak, only a pinned digest of a committed, public file.
exclude: packages/studyloop/tests/acceptance/uat/data/.*_registry\.json$
# Council manifests (docs/architecture/plan-integration/council/*/manifest.json)
# carry the brief and system-prompt sha256 so a seat receipt can be tied to
# the exact text it answered -- again a digest of a committed file, not a key.
# Plan-integration receipts (docs/architecture/plan-integration/receipts/*.json)
# are the same class: the verification receipt records the golden fixture's
# sha256 and the UAT redacted summary carries the rubric hash and the
# private bundle's manifest digest (council D-22) -- every one a digest the
# redaction rules allow out precisely because it identifies without revealing.
exclude: |
(?x)^(
packages/studyloop/tests/acceptance/uat/data/.*_registry\.json|
docs/architecture/plan-integration/council/.*/manifest.*\.json|
docs/architecture/plan-integration/receipts/.*\.json
)$
- repo: https://github.com/PyCQA/bandit
rev: 1.8.3
hooks:
Expand Down Expand Up @@ -85,6 +98,21 @@ repos:
language: pygrep
types:
- text
# trufflehog (added 2026-09-15): provider-specific credential detectors on the
# staged changes -- AWS/Bedrock, GitHub, OpenAI, Anthropic, Slack, ... -- as
# a second, independent layer under detect-secrets' entropy heuristics. The
# wrapper consumes trufflehog's JSON and prints detector/file/line only; the
# raw match is never echoed, so a caught secret cannot leak via the hook's
# own output. Fails on `verified` and `unknown` results alike: an
# revoked or fake key still leaks the shape of a real one. Binary via mise.
# Full-history sweep: `uv run python scripts/security/trufflehog_redacted.py --history`.
- id: trufflehog
name: trufflehog (staged changes, redacted output)
entry: uv run --group dev python scripts/security/trufflehog_redacted.py
language: system
pass_filenames: false
always_run: true
stages: [pre-commit]
# One hook, the same invocation as `just typecheck`, so the commit-time check
# and the release gate cannot disagree. The previous two hooks ran pyright on
# each package's src/ only; a test-only type error (R-51) passed the hook and
Expand Down
39 changes: 17 additions & 22 deletions .secrets.baseline

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ just preflight
- Conduct: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) (Contributor Covenant 2.1).
- Security concerns go through [GitHub's private advisory form](https://github.com/NetDevAutomate/StudyLoop/security/advisories/new), never a public issue.

StudyLoop is a pre-1.0 pre-release with six first-party mentor harnesses (Kiro CLI, Codex and Claude Code are
core; OpenCode, pi and Grok Build are preview). Proposals for another harness start with an issue, not a pull request.
StudyLoop is a pre-1.0 pre-release with six first-party mentor harnesses (Kiro CLI, Codex, Claude Code and pi are
core; OpenCode and Grok Build are preview). Proposals for another harness start with an issue, not a pull request.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,9 @@ clear:
- the Web UI needs the local StudyLoop server and does not work offline;
- voice uses a configured Kokoro-compatible server, then falls back to operating
system voices when available;
- study plans can be created in the Web UI or CLI, but the current Web UI form is
manual—an agent-led planning interview is not integrated there yet;
- study plans can be created in the Web UI form, the CLI, or through the agent-led
architect interview (Web UI, CLI, or MCP); an active plan biases the next-action
recommendation but is never bound to a live study session;
- practice-task generation and verification are currently CLI workflows.

Those limits are tracked openly in the [roadmap](docs/roadmap.md). If one blocks
Expand Down
Loading
Loading