Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
172 commits
Select commit Hold shift + click to select a range
2524453
chore: ledger — ResearchGate live, Parpola note, publication status
tbitcs May 26, 2026
29d9ad2
Preprint v3 (develop): ICIT-independent reframe, 713-sign gap, allogr…
tbitcs May 26, 2026
4ae87c6
Competing LM convergence test: Dravidian vs Hebrew vs Uniform on IVS
tbitcs May 26, 2026
4b0716f
LEDGER: record Dravidianist outreach (3 sent, 1 bounced) + competing …
tbitcs May 26, 2026
4d8b9bb
Phase 295: infrastructure sprint + bulk mine 5000 + repo cleanup
tbitcs May 26, 2026
df36534
Phase 296-297: graph audit + mine cross-ref + full gap analysis
tbitcs May 26, 2026
bbcb776
Phase 298: deep Munda + archaeology mine (7,984 papers, 3 rounds)
tbitcs May 27, 2026
448fe4c
Phase 299-302: Munda SA + substrate + archaeology + dashboard deploy
tbitcs May 27, 2026
a94b806
Fix dashboard: anchor coverage shows 605/713 (ICIT denominator)
tbitcs May 27, 2026
b614cdd
UI fixes: progress bar text readability + Logs tab rename
tbitcs May 27, 2026
501ce08
Phase 303-307: anchored Munda SA + allograph + cross-researcher + coh…
tbitcs May 27, 2026
481e44d
Dashboard clarity: 605/713/108 gap + preprint §3.18 Munda SA + §4.4/§…
tbitcs May 27, 2026
5941380
Fix ruff lint: split multi-imports + remove f-string without placehol…
tbitcs May 27, 2026
7568366
Phase 308: Elamite bigram LM baseline + full graph audit
tbitcs May 27, 2026
5a91e5b
Phase 309-311: Kur audit fix, Shaw comparison, M77 replication, phono…
tbitcs May 27, 2026
bc7ad1a
Phase 312: Re-derive 205 reverted sign readings via positional profiling
tbitcs May 27, 2026
aa9698c
Phase 313-316: PD grammar validation (91.8%), formula mining, Nair sc…
tbitcs May 27, 2026
aac6621
Phase 317-320: Permutation null (NOT significant), Parpola 50%, entro…
tbitcs May 27, 2026
c4f85c0
Phase 321: Venkatesan 0% overlap, Kriger 97.7% uniqueness, outreach list
tbitcs May 27, 2026
72a84aa
AUDIT: Revert Phase 312 kol mass-assignment (same bug class as kur)
tbitcs May 27, 2026
c50f890
AUDIT: Complete integrity review with corrections and retractions
tbitcs May 27, 2026
2591169
RELEASE VALIDATION: Cold re-run of 6 experiments on audited anchors
tbitcs May 27, 2026
1735ddd
Fix Parpola comparison: strict alternative matching, no substring tricks
tbitcs May 27, 2026
d9fda2a
Update release validation: 185 Holdat-attested HIGH signs (not 208)
tbitcs May 27, 2026
8b60da1
Update README with audited numbers, DOI badge, ORCID, honest claims
tbitcs May 27, 2026
619388c
Preprint v3 draft: 185 readings, 6 tests, full audit disclosure
tbitcs May 27, 2026
951a978
Generate preprint v3 PDF via pandoc+xelatex
tbitcs May 27, 2026
e920805
Update DOI to v3: 10.5281/zenodo.20414696
tbitcs May 27, 2026
ccbc222
Fix preprint: remove duplicate title, generic AI disclosure, DOI in h…
tbitcs May 27, 2026
6d7a5d4
Move AI disclosure to Declarations section at end of paper
tbitcs May 27, 2026
412619e
Phases 322-335: Mega mine 5000 + 13 decipherment experiments
tbitcs May 27, 2026
a0b982e
Phases 336-339: PDr morpheme LM (z=14.0!), phoneme resolution, Shu-il…
tbitcs May 27, 2026
f7010d7
Phases 340-345: Anti-circularity validated (z=2.8), word boundary STR…
tbitcs May 27, 2026
26d1c0a
Phases 346-348: CONVERGENCE LEVEL 3 REACHED — motif z=17.9, morpheme …
tbitcs May 27, 2026
8b177f2
Phases 349-350: Sangam syllable CE marginal (z=1.1), M77 r=0.639 mode…
tbitcs May 27, 2026
c6995d6
Auto-decipher loop: autonomous research protocol + 5 iterations
tbitcs May 27, 2026
2498d28
Auto-decipher loop: 10 iterations — plateau confirmed at Level 3 (16/18)
tbitcs May 27, 2026
a59dc7a
★ ALL 6 CHANNELS STRONG — 18/18 — Claim Level 3 (max)
tbitcs May 27, 2026
e1ae09c
Phase 351: Advancement mine — 42 papers across 6 categories
tbitcs May 27, 2026
c7974b1
Phases 352-357: Advancement experiments — 56% readable, 84 allograph …
tbitcs May 27, 2026
6438cf8
Phases 358-362: Allograph consolidation (400→363), 66% coherent trans…
tbitcs May 27, 2026
3bb3b55
Auto-decipher loop post-consolidation: 18/18 confirmed in 4 iterations
tbitcs May 27, 2026
2029827
Register phases 322-362 as graph experiment nodes + advancement mine …
tbitcs May 27, 2026
b76030d
Final iteration: all experiments registered, mined, and validated
tbitcs May 27, 2026
391442a
Phases 363-370: Deep experiments — 75% fully decoded, 93% coverage, c…
tbitcs May 27, 2026
2519702
Auto-decipher loop: 5 iterations, 18/18 at iter 4, early-stop
tbitcs May 27, 2026
e0e1252
Phases 371-376: 65 guild titles, 348 one-sign-blocked, all motifs dis…
tbitcs May 27, 2026
3c17d8a
Auto-decipher loop: 18/18 at iter 4, early-stop (stable)
tbitcs May 27, 2026
c088452
Mining discovery loop: 1331 papers, 217 insights across 5 targeted ro…
tbitcs May 27, 2026
f134cbe
Register all 12 graph experiment nodes (322-376) + mining discovery loop
tbitcs May 27, 2026
d7bf9f2
25 iterations: all experiments re-run, mining loop (1268 papers), 18/…
tbitcs May 27, 2026
2256cf0
Full cycle: mine (1282 papers) → experiments → auto-loop 15 iter → 18/18
tbitcs May 27, 2026
ec64fda
Integrated research loop: 15 cycles, 970 papers, 15 unique experiment…
tbitcs May 27, 2026
f7c300c
Integrated research loop: 15 cycles run + feature documentation for G…
tbitcs May 27, 2026
9f04638
Phase 377: Full session insights report (email pending — no transport…
tbitcs May 27, 2026
8f289a4
Phases 378-381 + 30 loop iterations: TB transfer, M77, Shu-ilishu, DE…
tbitcs May 28, 2026
0a9b0a3
Integrated research loop: 30 full cycles completed
tbitcs May 28, 2026
5eff736
Phases 382-390: Nine actionable experiments — 91% Parpola, 1252 trans…
tbitcs May 29, 2026
c924fb6
15 graph nodes registered (322-390), foundation check 38/0/9, all ver…
tbitcs May 29, 2026
4970024
Integrated research loop: 15 cycles + updated documentation
tbitcs May 29, 2026
d60c395
15 integrated loop cycles + implementation plan for native UI + dashb…
tbitcs May 29, 2026
85ad3a2
Implement Research Loop native integration (Phases 1-3)
tbitcs May 29, 2026
39da1ac
Phase 4: ResearchLoopPanel — dashboard UI for integrated research loop
tbitcs May 29, 2026
36b8448
Update implementation plan: Phases 1-4 complete
tbitcs May 29, 2026
6d20f29
feat: Research Loop Phases 5-7 — Experiment Builder node, insight-dri…
tbitcs May 29, 2026
6334b75
test: add 20-test suite for Research Loop Phases 5-7
tbitcs May 29, 2026
aa02323
test: automated Playwright + API tests for Research Loop
tbitcs May 29, 2026
4e25c1a
fix: TypeScript interface + API endpoint URL; rebuild frontend
tbitcs May 29, 2026
99891ce
test: deep integration tests for Research Loop pipeline (15 tests)
tbitcs May 29, 2026
3d7fc86
fix: move DB persistence to async API layer + add Job tracking
tbitcs May 29, 2026
1db85a3
feat: wire _execute() to real graph experiments + post-loop synthesis
tbitcs May 29, 2026
7520600
fix: expand insight keywords 6 -> 102 (was extracting 1/972 papers)
tbitcs May 29, 2026
e1ff366
feat: add activity dot to bottom panel Jobs tab when jobs are running
tbitcs May 29, 2026
8b0f771
fix: create research_loop job as 'running' to prevent engine claiming it
tbitcs May 29, 2026
8072ebe
fix: research loop — remap broken kl_comparison experiments, reset al…
tbitcs May 29, 2026
5320660
feat: run foundation check after each research loop, include result i…
tbitcs May 29, 2026
d23212f
chore: session save — research loop diagnosis, cleanup, foundation ch…
tbitcs May 29, 2026
45bc641
feat: run summary dashboard — persist synthesis to DB, /last-run endp…
tbitcs May 29, 2026
c7a8874
feat: research loop v2 — blitz mine + act + anchor candidate staging
tbitcs May 29, 2026
133d4f4
feat: anchor candidate review queue — approve/reject/delete UI + API
tbitcs May 29, 2026
839169f
feat: actionable buttons on all DeciphermentPanel informational badges
tbitcs May 29, 2026
99046b6
feat: automated dashboard — remove Mine+Reload, auto-fetch, auto-insi…
tbitcs May 29, 2026
b4cf1b5
fix: exp_run engine race + remove refresh_insights proposal + expand_…
tbitcs May 29, 2026
df63a05
fix: M77InscriptionLoader fallback to Holdat CSV + exp_run race fix
tbitcs May 29, 2026
02450ee
feat: proposal action buttons track running/done/error state
tbitcs May 29, 2026
fd853aa
chore: session save — UI automation, SA fixes, proposal button states
tbitcs May 29, 2026
191e15a
fix: prevent duplicate experiment runs — reject if same exp_id alread…
tbitcs May 29, 2026
4c76eaf
fix: startup orphan sweep + reduce stall watchdog to 30 min
tbitcs May 29, 2026
538bedd
fix: job duration display in HH:MM:SS format
tbitcs May 29, 2026
878a785
feat: resource-aware scheduling + duplicate-job guard
tbitcs May 29, 2026
46cfa58
chore: specsmith audit remediation + phase inception → architecture
tbitcs May 29, 2026
3d37bce
chore: full AEE phase advancement Inception→Release + research loop v…
tbitcs May 29, 2026
888014d
chore: session close
tbitcs May 29, 2026
a8212f2
feat(ui): fix arrange overlap + HH:MM:SS elapsed + historical ETA (R2…
tbitcs May 29, 2026
22ea87e
fix(ui): crash fix + GPU concurrency guard + pause/resume polishes
tbitcs May 29, 2026
ba019fe
feat: pause works + auto-queue + queue button (no console required)
tbitcs May 29, 2026
3f7ab53
fix(jobs): BottomPanel queue banner not showing after ExperimentBuild…
tbitcs May 29, 2026
f2283e3
chore: specsmith audit pass — add test coverage for R20/R21 + ledger
tbitcs May 29, 2026
7d276e1
UI Feature Sprint: Pause/Resume, Auto-Queue, Arrange Fix, ETA Fix
tbitcs May 29, 2026
c4ce5a2
feat: abort hard-deletes job record + Clear Cache button
tbitcs May 30, 2026
f857658
refactor: move Clear Cache to Settings > System; clear paused/pending…
tbitcs May 30, 2026
878dba3
fix: heartbeat now bumps updated_at so watchdog never kills long SA n…
tbitcs May 30, 2026
d1694ee
fix: Clear Cache now covers all run-state; rename to Clear Cache
tbitcs May 30, 2026
c149e63
chore: add specsmith Warp/Claude/Codex skills
tbitcs May 30, 2026
fca5be7
feat: mobile-responsive sidebar with hamburger toggle
tbitcs May 30, 2026
0c6f533
fix: mobile layout - bottom gap, top bar clutter, padding, iOS safe area
tbitcs May 30, 2026
94efdd9
fix: touch selection and tap targets
tbitcs May 30, 2026
b03bed7
fix: bottom panel tabs now expand on mobile
tbitcs May 30, 2026
08c0cc6
fix: decouple experiment execution from SSE connection — SA always co…
tbitcs May 30, 2026
0974385
fix: HARD BLOCK all automatic email sends
tbitcs May 30, 2026
d3eb8ec
fix: restore email sends - strictly limited to registered recipients …
tbitcs May 30, 2026
03b2152
perf: fix BigramScorer.score_full - bulk CPU→GPU transfer kills 23h S…
tbitcs May 31, 2026
e25006f
perf: BigramScorer always uses NumPy, never CuPy
tbitcs May 31, 2026
c4343de
fix: remove dead _DIAC maketrans that crashes IndusAnchorSetSyllable
tbitcs May 31, 2026
7a806dc
fix: _sse uses json.dumps(default=str) to handle non-serializable LM …
tbitcs May 31, 2026
ee97972
dashboard: done chip + re-run button + fix run_experiment label
tbitcs May 31, 2026
54f1e0b
dashboard: broaden Plan->Run label fix to all runnable action types
tbitcs May 31, 2026
0d46071
decipherment panel: rename Plan SA run -> Run SA, Plan -> Run
tbitcs May 31, 2026
450da53
decipherment panel: busy state + double-click guard
tbitcs May 31, 2026
4986171
decipherment panel: persist done state to localStorage
tbitcs May 31, 2026
1a1f541
fix: persist pending state + SA keyword matching
tbitcs May 31, 2026
45ae5ad
fix: DeciphermentPanel pending state + dismiss + e2e test suite
tbitcs May 31, 2026
4e39b13
fix: propagate experiment chain failures to ✗ Error state
tbitcs May 31, 2026
acf8590
fix: show '⏳ Running…' immediately on click, not only after reload
tbitcs May 31, 2026
069ead5
fix: stop persisting 'pending' to localStorage — prevents stuck Runni…
tbitcs May 31, 2026
b6d653d
fix: use sessionStorage for pending — persists on Ctrl+R, clears on t…
tbitcs May 31, 2026
5c94fe5
fix: filter stale 'pending' from localStorage in _loadDone
tbitcs May 31, 2026
e39c501
feat: overhaul staging review UX
tbitcs Jun 1, 2026
49a8c80
feat: add Unstage All and Re-stage All bulk buttons to staging review
tbitcs Jun 1, 2026
3d9f136
fix: replace loop.run_until_complete() with asyncio.run() in node fun…
tbitcs Jun 1, 2026
cf25afd
feat: persist Glossa AI chat history across sessions
tbitcs Jun 1, 2026
a737e98
fix(backend): use synchronous sqlite3 in node functions — definitivel…
tbitcs Jun 1, 2026
d8b816e
feat: add Archive Reviewed button to StagingReview
tbitcs Jun 1, 2026
5d0b45d
feat: add dismiss button to Done state on dashboard insight items
tbitcs Jun 1, 2026
3bc1519
feat: Major Research Platform Overhaul (Phases A-E) (#34)
tbitcs Jun 2, 2026
f9b79a5
UI Feature Sprint: Pause/Resume, Auto-Queue, Arrange Fix, ETA Fix
tbitcs Jun 2, 2026
86376d4
chore: remove merge conflict resolution helpers (not part of codebase)
tbitcs Jun 2, 2026
562aecc
feat(loop-ux): phase progress strip, collapsed log, auto-expand staging
tbitcs Jun 2, 2026
20f7b6a
feat(signs): add sign glyph image support
tbitcs Jun 2, 2026
863ee72
feat(experiments): canonical experiment IDs with legacy aliases
tbitcs Jun 2, 2026
994403a
feat(anchor): SA delta, recommended tier, accept-recommended, auto-ar…
tbitcs Jun 2, 2026
0c60ae5
feat(signs): add sign glyph image support (Phase 1)
tbitcs Jun 2, 2026
001eceb
feat(anchor): SA delta, recommended tier, accept-recommended, auto-ar…
tbitcs Jun 2, 2026
dd38281
feat(loop-ux): phase progress strip, collapsed log, auto-expand stagi…
tbitcs Jun 2, 2026
2d50ce7
feat(experiments): canonical experiment IDs with legacy aliases (Phas…
tbitcs Jun 2, 2026
ad7c55b
chore: rebuild frontend dist with all Phase 1-4 changes
tbitcs Jun 2, 2026
f611ce2
fix: resolve 6 post-overhaul issues + experiment builder drag-drop
tbitcs Jun 3, 2026
bca9ead
fix(verify-sa): run SA experiment via asyncio background task not eng…
tbitcs Jun 3, 2026
65b454e
fix(loop-ui): prevent UI crash during long research loop runs
tbitcs Jun 3, 2026
16fc732
fix(loop): decouple post-loop completion from SSE connection lifetime
tbitcs Jun 3, 2026
bf8977c
feat: experiment cleanup (20 kept, 126 archived) + explicit SA valida…
tbitcs Jun 3, 2026
e57eaea
feat: formal experiment naming schema + full cross-codebase audit
tbitcs Jun 3, 2026
62fbada
fix: add standalone dismiss (x) button to DeciphermentPanel action bl…
tbitcs Jun 3, 2026
659dce7
fix: prevent archived experiments from being recreated on every restart
tbitcs Jun 3, 2026
59a58e2
fix: prevent SA sign re-approval by excluding archived/anchored candi…
tbitcs Jun 4, 2026
49858bf
fix: make AI-triggered and UI-triggered experiments produce visible J…
tbitcs Jun 4, 2026
a6f59d5
feat: add CLDF data layer with JAMBU/DEDR integration
tbitcs Jun 4, 2026
87ddc38
merge: SA staging dedup fix (agent-a)
tbitcs Jun 4, 2026
93a5202
merge: experiment pipeline fix (agent-b)
tbitcs Jun 4, 2026
b97e108
merge: CLDF data layer (agent-c)
tbitcs Jun 4, 2026
41a5dee
feat: add ProjectConfig layer and wire into pipeline, signs, AG2, and…
tbitcs Jun 4, 2026
5b4a604
merge: project config layer + wiring (agent-d)
tbitcs Jun 4, 2026
79bc2a1
fix: enable drag-drop without prior save + rename phase32/33 experime…
tbitcs Jun 4, 2026
4353e35
fix: server-side persistent dismissal + loop confirm dialog
tbitcs Jun 4, 2026
6429e79
fix: AG2 chat scroll-to-bottom on load, copy-all, per-message copy
tbitcs Jun 4, 2026
e691bd8
merge: persistent dismissal + loop confirm (agent-e)
tbitcs Jun 4, 2026
8b5a940
merge: AG2 chat UX fixes (agent-f)
tbitcs Jun 4, 2026
eabc3c2
merge: experiment builder drag-drop + palette audit (agent-g)
tbitcs Jun 4, 2026
446c810
fix: correct badge visibility logic + test fixtures for dismissal pip…
tbitcs Jun 4, 2026
df6769f
chore: remove temporary playwright output files
tbitcs Jun 4, 2026
17427ad
fix: 100% test pass - metrics timeout guard, test selector corrections
tbitcs Jun 4, 2026
d6af532
feat: add staging prune endpoint + prune button in ResearchLoopPanel
tbitcs Jun 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
59 changes: 59 additions & 0 deletions .agents/skills/specsmith-audit/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
name: specsmith-audit
description: Run specsmith audit to check for governance drift between requirements, tests, and architecture. Required before advancing an AEE phase.
---

# Specsmith Audit

Checks the project for drift between requirements (ARCHITECTURE.md), test cases, and the codebase. Must pass before advancing an AEE phase.

## How to run

```bash
specsmith audit
```

## Interpreting results

```
29 PASS ← all requirements have matching tests and implementation
2 WARN ← drift detected — investigate these
0 FAIL
```

**All items must be PASS or suppressed before `specsmith phase advance`.**

## When a WARN appears

1. Read the warning — it will reference a requirement ID (e.g. `R20`) and describe what's missing
2. Fix it: add the missing test, update ARCHITECTURE.md, or implement the requirement
3. Re-run `specsmith audit` to confirm it passes
4. If it's a confirmed false positive: `specsmith audit --suppress <CODE>`

## Suppressing a false positive

Only suppress if you've verified the requirement IS met but the audit can't detect it automatically:

```bash
specsmith audit --suppress SEAL-XXXX-001
```

Suppressions are permanent and stored in governance state — use them sparingly.

## Common causes of WARN

- Requirement in ARCHITECTURE.md has no corresponding test case
- Test exists but requirement ID reference is missing from the test
- Implementation exists but the architecture doc wasn't updated to match

## After fixing all warnings

```bash
specsmith audit # confirm all pass
specsmith phase advance # advance the phase
specsmith save # commit the phase bump
```

## Quick audit before a session

Run `specsmith audit` at the start of a session to catch any drift from the previous session before making new changes.
51 changes: 51 additions & 0 deletions .agents/skills/specsmith-save/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
name: specsmith-save
description: Run specsmith save to commit and push all current changes with governance state backup. Use at the end of any work session or after completing a feature/fix.
---

# Specsmith Save

Saves governance state: backs up the ESDB, commits any staged/unstaged changes, and pushes to the remote.

## When to use

- At the end of any work session
- After implementing a feature, fix, or refactor
- After advancing a phase
- Whenever the user says "save", "commit and push", or "specsmith save"

## How to run

```bash
specsmith save
```

## What it does (in order)

1. **ESDB backup** — snapshots the epistemic state database
2. **Commit** — stages all changes and commits with a governance-aware message (or reports "Nothing to commit")
3. **Push** — pushes the branch to origin (or reports "Everything up-to-date")

## Expected successful output

```
✓ esdb_backup: JSON fallback (no WAL to backup)
✓ commit: Nothing to commit ← or a commit hash
✓ push: Everything up-to-date ← or "pushed to origin/phase-next"
```

## If there are changes to commit

Specsmith will auto-stage and commit. It generates a governance-aware commit message from the diff. You can also pre-stage and commit manually first:

```bash
git add -A
git commit -m "feat: description

Co-Authored-By: Oz <oz-agent@warp.dev>"
specsmith save # will see nothing to commit, just pushes
```

## Do NOT use `git push` directly

Always use `specsmith save` — it ensures the ESDB backup runs before the push, keeping governance state consistent with the remote.
69 changes: 69 additions & 0 deletions .agents/skills/specsmith/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
name: specsmith
description: Reference for the specsmith AEE governance tool used in this project. Use this to understand specsmith commands, the session workflow, and how to interact with the governance layer correctly.
---

# Specsmith — Project Governance Tool

Specsmith is the AEE (Agile Epistemic Engineering) governance CLI used in this project. It manages requirements, phases, audit trails, and session state. It wraps git with governance-aware commits and backs up the epistemic state DB (ESDB).

## Key concepts

- **ESDB** — Epistemic State Database. Tracks certainty, audit state, session memory. Backed up on `specsmith save`.
- **Phases** — AEE lifecycle: Inception → Elaboration → Construction → Transition → Validation → Hardening → Release. Advance with `specsmith phase advance`.
- **Ledger** — Running log of changes in `LEDGER.md`. Auto-updated by commits.
- **Audit** — Checks requirements vs tests vs architecture for drift. Run before advancing a phase.
- **Save** — ESDB backup + governance-aware git commit + push.

## Session workflow

```
1. specsmith audit # check for drift before working
2. <make code changes>
3. specsmith save # commit + push + ESDB backup
```

## Common commands

| Command | What it does |
|---------|-------------|
| `specsmith save` | ESDB backup → commit (if needed) → push |
| `specsmith audit` | Drift/health check — requirements vs tests vs arch |
| `specsmith audit --suppress <CODE>` | Accept a known false positive |
| `specsmith phase` | Show current AEE phase |
| `specsmith phase advance` | Advance to the next phase (requires clean audit) |
| `specsmith commit` | Governance-aware commit (wraps git commit) |
| `specsmith ledger` | Show/manage the change ledger |
| `specsmith compress` | Compress old ledger entries |
| `specsmith req` | Manage requirements |
| `specsmith test` | Manage test cases |
| `specsmith status` | VCS/CI/PR status |

## Commit conventions

Specsmith commits follow: `type: message` where type is one of:
`feat`, `fix`, `refactor`, `test`, `docs`, `chore`, `perf`

Always append `Co-Authored-By: Oz <oz-agent@warp.dev>` when committing as an AI agent.

## Important rules

- **Never use `git commit` directly** — use `specsmith save` or `specsmith commit` so governance state stays consistent.
- **Run `specsmith audit` before advancing a phase** — a phase advance with drift will fail.
- **Suppressed audit findings** are stored permanently; only suppress genuine false positives.
- After `specsmith save` outputs `✓ push: Everything up-to-date` with nothing to commit, the repo is fully clean.

## Audit result codes

- `PASS` — requirement/test/arch is consistent
- `WARN` — drift detected, investigate
- `SKIP` / suppressed — accepted false positive
- Numbers like `R20`, `R21` — requirement IDs in ARCHITECTURE.md

## Phase advancement

```bash
specsmith audit # must be all-pass (or suppressed)
specsmith phase advance # bumps phase, writes ledger entry
specsmith save # commit the phase bump
```
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ temp/
*.db-wal

# ---- Local config / secrets ----
project.yml
.env
.env.*
*.pem
Expand Down Expand Up @@ -147,6 +148,7 @@ data/.keys.json

# ---- Database files ----
data/glossa.db
frontend/data/glossa.db

# ---- Backend runtime logs at root ----
backend/uvicorn_stdout.log
Expand Down Expand Up @@ -216,5 +218,8 @@ docs/*.bak
*.fdb_latexmk
*.synctex.gz

# Bulk mine outputs — large JSON files (regenerable from scripts)
outputs/phase*_bulk_mine_*.json

# Private correspondence — local context only, never pushed
.correspondence/
23 changes: 23 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,26 @@ The following project-specific rule files apply to all sessions:

- `docs/research/NORMALIZATION_RULES.md` — Indus sign normalization rules for
corpus processing and sign-ID canonicalization.

---

## MCP server

A FastMCP server lives at `backend/glossa_mcp/server.py` and exposes 27 tools
for querying and controlling the backend without manual API calls:

- **Status/metrics** — `get_status`, `get_system_metrics`
- **Jobs** — `list_jobs`, `get_job`, `create_job`, `cancel_job`, `get_job_results`
- **Experiments** — `list_experiments`, `get_experiment`, `run_experiment`
- **Research loop** — `start_research_loop`, `get_research_loop_status`,
`stop_research_loop`, `get_research_loop_results`, `get_anchor_staging`
- **Foundation check** — `run_foundation_check`
- **Discovery** — `list_discovery_items`, `get_discovery_stats`,
`trigger_discovery_fetch`, `update_discovery_item_status`
- **Dashboard** — `get_latest_insight`, `get_dashboard_highlights`
- **Anchor sets** — `list_anchor_sets`, `get_anchor_set`, `create_anchor_set`
- **Reports** — `list_reports`, `get_report`

The server connects to the running backend at `GLOSSA_BASE_URL`
(default: `http://127.0.0.1:8001`). Tools return clean JSON error objects when
the backend is unreachable — they never crash the MCP process.
Loading
Loading