Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
9543165
fix(legis): --allow-dirty emits an unsigned dev artifact instead of r…
Jun 6, 2026
77cbbd9
feat(gate): verdict carries a human reason + evaluated population (wa…
Jun 6, 2026
b0e9dba
feat(gate): loud baseline-migration signal + UPGRADING/CHANGELOG (war…
Jun 6, 2026
c1f5da2
feat(mcp): scan payload controls — where shrinks payload, summary_onl…
Jun 6, 2026
e79ef14
fix(gate): count the verdict reason over the actual gate population (…
Jun 6, 2026
34a012e
fix(mcp): tighten default explain cap to 10 (wardline-2957009961 foll…
Jun 6, 2026
fb557b8
fix(gate): next_actions are gate-aware — never say "passed" on a trip…
Jun 6, 2026
35ff7c4
fix(filigree): distinguish 401 auth-rejected from transport-unreachab…
Jun 6, 2026
39b87ef
docs(changelog): record next_actions gate-awareness (#2) and 401-vs-u…
Jun 6, 2026
fa23a10
chore(uv): sync uv.lock to the loomweave extra (was stale 'clarion' s…
Jun 6, 2026
a8103df
fix(ready-queue): resolve 3 tickets — PY-WL-110 weft_markers gap, lam…
Jun 6, 2026
50b27a0
fix(dogfood): PR #30 review hardening — gate invariant, 403/5xx split…
Jun 6, 2026
77e1d8e
chore(release): cut 1.0.0rc2
Jun 6, 2026
83c66e6
docs(release): stamp 1.0.0rc2 changelog, fix stale README output, rob…
Jun 6, 2026
6f2c1d6
style: apply ruff format to satisfy the CI format gate
Jun 6, 2026
da9c535
fix(rc2): close 3 PR-review Important findings (EmitResult invariants…
Jun 6, 2026
58ab20f
chore(release): bump version to 1.0.0rc3
Jun 6, 2026
3ebb62f
feat(rc3): adopt federation-scoped WEFT_FEDERATION_TOKEN for Filigree…
Jun 6, 2026
963f414
chore(skills): refresh filigree/loomweave skill packs
Jun 6, 2026
6c2e70f
chore(release): bump version to 1.0.0rc4
Jun 6, 2026
f08bb43
feat(weft): add core/paths single-source-of-truth for weft.toml + .we…
Jun 6, 2026
24731b3
feat(weft): config loader reads weft.toml [wardline] (tomllib, zero-d…
Jun 6, 2026
251c322
feat(weft): relocate state to .weft/wardline, retire config-write pat…
Jun 6, 2026
ffbf1ad
fix(weft): repoint implicit config default to weft.toml (run.py + sca…
Jun 6, 2026
e90b568
docs+chore(weft): config/store-consolidation docs sweep, cosmetic war…
Jun 6, 2026
ba42401
chore(weft): untrack accidentally-committed dead wardline.yaml; fix a…
Jun 6, 2026
ceb55ce
fix(weft): address code-review panel findings (store_dir confinement,…
Jun 7, 2026
2a12462
refactor(weft): cut dead trust_local_packs/trusted_packs from resolve…
Jun 7, 2026
44c02f0
fix(weft): harden published-port parse against isdigit/int crash + st…
Jun 7, 2026
58e4346
test+fix(weft): close 5 panel quality items (doctor signal, FN guard,…
Jun 7, 2026
c65547d
chore(weft): close 5 minor rc4 panel items (lambda-FN ticket, store_d…
Jun 7, 2026
5ebf078
fix(weft): close PR-review config-load false-green + latent type-rigo…
Jun 7, 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
2 changes: 1 addition & 1 deletion .agents/skills/filigree-workflow/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ When parsing `--json` output or MCP responses, expect these unified envelopes:
one of: `VALIDATION`, `NOT_FOUND`, `CONFLICT`, `INVALID_TRANSITION`,
`PERMISSION`, `NOT_INITIALIZED`, `IO`, `INVALID_API_URL`,
`FILE_REGISTRY_DISPLACED`, `REGISTRY_UNAVAILABLE`,
`CLARION_REGISTRY_VERSION_MISMATCH`, `CLARION_OUT_OF_SYNC`,
`LOOMWEAVE_REGISTRY_VERSION_MISMATCH`, `LOOMWEAVE_OUT_OF_SYNC`,
`BRIEFING_BLOCKED`, `STOP_FAILED`, `SCHEMA_MISMATCH`, `INTERNAL`.
Branch on `code` for retry policy
(`CONFLICT` → exit 4, retryable; everything at exit 1 needs operator
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/loomweave-workflow/.fingerprint
Original file line number Diff line number Diff line change
@@ -1 +1 @@
fe04e6fd9d528b07738f527b41d817dff89344f051465af012fc42ed44377ea3
8af48023ff74748434eec046b718fe586bce8784e51d474c9c58daf8f292326b
16 changes: 13 additions & 3 deletions .agents/skills/loomweave-workflow/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,18 +65,27 @@ tell which case you're in.
| `execution_paths_from` | bounded call paths out of an entity | `{"id": "<id>", "max_depth": 5}` |
| `subsystem_members` | modules in a subsystem | `{"id": "core:subsystem:<hash>"}` |
| `subsystem_of` | the subsystem an entity belongs to (reverse of `subsystem_members`) | `{"id": "<id>"}` |
| `summary` | on-demand prose summary of one entity | `{"id": "<id>"}` |
| `summary` | on-demand prose summary of one entity | `{"id": "<id>"}` |
| `summary_preview_cost` | preview a `summary` call's cache status / cost before spending | `{"id": "<id>"}` |
| `issues_for` | Filigree issues attached to an entity | `{"id": "<id>"}` |
| `source_for_entity` | an entity's exact indexed source span + bounded context | `{"id": "<id>", "context_lines": 10}` |
| `call_sites` | the source line(s) behind a calls/references edge | `{"id": "<id>", "role": "caller"}` |
| `orientation_pack` | one deterministic orientation packet for an entity or file:line (entity + context + neighbors + paths + issues + freshness) | `{"file": "rel/path.py", "line": 42}` |
| `index_diff` | index freshness / drift vs. the current working tree | `{}` |
| `analyze_start` | launch a background re-index, return its `run_id` | `{}` |
| `analyze_start` | launch a background re-index, return its `run_id` | `{}` |
| `analyze_status` | poll a started analyze (queued/running/terminal + progress) | `{"run_id": "<id>"}` |
| `analyze_cancel` | stop a running analyze (group-kills plugin + Pyright) | `{"run_id": "<id>"}` |
| `analyze_cancel` | stop a running analyze (group-kills plugin + Pyright) | `{"run_id": "<id>"}` |
| `project_status` | index freshness, counts, LLM + Filigree status | `{}` |

† **Write-gated.** `summary` (`entity_summary_get`), `analyze_start`,
`analyze_cancel`, `propose_guidance`, and `promote_guidance` are registered only
when `serve.mcp.enable_write_tools: true` is set in `loomweave.yaml` (default
`false`). When the gate is off they do not appear in `tools/list` and a call
returns a tool-disabled error — run `loomweave config check` to see the active
policy. `summary` additionally requires the live LLM provider to be enabled
(`llm_policy.enabled: true` + `allow_live_provider: true`), or it serves cache
only.

`callers_of` / `neighborhood` / `execution_paths_from` take a `confidence`
tier — one of `"resolved"` (default; only high-confidence edges),
`"ambiguous"`, or `"inferred"`. There is no `"all"` value. When you suspect an
Expand Down Expand Up @@ -163,6 +172,7 @@ for team sharing). Agents may call `propose_guidance` to create a Filigree
observation, but that proposal is inert until an operator promotes it through
`promote_guidance` or the CLI. Promoted sheets reach you through `guidance_for`
and are composed into `summary` prompts with a real guidance fingerprint.
(`propose_guidance` and `promote_guidance` are write-gated — see the † note above.)

## Workflow: orient, then navigate

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/filigree-workflow/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ When parsing `--json` output or MCP responses, expect these unified envelopes:
one of: `VALIDATION`, `NOT_FOUND`, `CONFLICT`, `INVALID_TRANSITION`,
`PERMISSION`, `NOT_INITIALIZED`, `IO`, `INVALID_API_URL`,
`FILE_REGISTRY_DISPLACED`, `REGISTRY_UNAVAILABLE`,
`CLARION_REGISTRY_VERSION_MISMATCH`, `CLARION_OUT_OF_SYNC`,
`LOOMWEAVE_REGISTRY_VERSION_MISMATCH`, `LOOMWEAVE_OUT_OF_SYNC`,
`BRIEFING_BLOCKED`, `STOP_FAILED`, `SCHEMA_MISMATCH`, `INTERNAL`.
Branch on `code` for retry policy
(`CONFLICT` → exit 4, retryable; everything at exit 1 needs operator
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/loomweave-workflow/.fingerprint
Original file line number Diff line number Diff line change
@@ -1 +1 @@
fe04e6fd9d528b07738f527b41d817dff89344f051465af012fc42ed44377ea3
8af48023ff74748434eec046b718fe586bce8784e51d474c9c58daf8f292326b
16 changes: 13 additions & 3 deletions .claude/skills/loomweave-workflow/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,18 +65,27 @@ tell which case you're in.
| `execution_paths_from` | bounded call paths out of an entity | `{"id": "<id>", "max_depth": 5}` |
| `subsystem_members` | modules in a subsystem | `{"id": "core:subsystem:<hash>"}` |
| `subsystem_of` | the subsystem an entity belongs to (reverse of `subsystem_members`) | `{"id": "<id>"}` |
| `summary` | on-demand prose summary of one entity | `{"id": "<id>"}` |
| `summary` | on-demand prose summary of one entity | `{"id": "<id>"}` |
| `summary_preview_cost` | preview a `summary` call's cache status / cost before spending | `{"id": "<id>"}` |
| `issues_for` | Filigree issues attached to an entity | `{"id": "<id>"}` |
| `source_for_entity` | an entity's exact indexed source span + bounded context | `{"id": "<id>", "context_lines": 10}` |
| `call_sites` | the source line(s) behind a calls/references edge | `{"id": "<id>", "role": "caller"}` |
| `orientation_pack` | one deterministic orientation packet for an entity or file:line (entity + context + neighbors + paths + issues + freshness) | `{"file": "rel/path.py", "line": 42}` |
| `index_diff` | index freshness / drift vs. the current working tree | `{}` |
| `analyze_start` | launch a background re-index, return its `run_id` | `{}` |
| `analyze_start` | launch a background re-index, return its `run_id` | `{}` |
| `analyze_status` | poll a started analyze (queued/running/terminal + progress) | `{"run_id": "<id>"}` |
| `analyze_cancel` | stop a running analyze (group-kills plugin + Pyright) | `{"run_id": "<id>"}` |
| `analyze_cancel` | stop a running analyze (group-kills plugin + Pyright) | `{"run_id": "<id>"}` |
| `project_status` | index freshness, counts, LLM + Filigree status | `{}` |

† **Write-gated.** `summary` (`entity_summary_get`), `analyze_start`,
`analyze_cancel`, `propose_guidance`, and `promote_guidance` are registered only
when `serve.mcp.enable_write_tools: true` is set in `loomweave.yaml` (default
`false`). When the gate is off they do not appear in `tools/list` and a call
returns a tool-disabled error — run `loomweave config check` to see the active
policy. `summary` additionally requires the live LLM provider to be enabled
(`llm_policy.enabled: true` + `allow_live_provider: true`), or it serves cache
only.

`callers_of` / `neighborhood` / `execution_paths_from` take a `confidence`
tier — one of `"resolved"` (default; only high-confidence edges),
`"ambiguous"`, or `"inferred"`. There is no `"all"` value. When you suspect an
Expand Down Expand Up @@ -163,6 +172,7 @@ for team sharing). Agents may call `propose_guidance` to create a Filigree
observation, but that proposal is inert until an operator promotes it through
`promote_guidance` or the CLI. Promoted sheets reach you through `guidance_for`
and are composed into `summary` prompts with a real guidance fingerprint.
(`propose_guidance` and `promote_guidance` are write-gated — see the † note above.)

## Workflow: orient, then navigate

Expand Down
12 changes: 10 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,18 @@ site/

# Wardline runtime output
findings.jsonl
.wardline-cache/

# Sibling legacy locations (transition window — .weft/<sibling>/ is preferred but
# the old dot-dirs may still be present until siblings finish migrating).
.loomweave

# NOTE: do NOT ignore .weft/ — wardline's own .weft/wardline/{baseline,judged,waivers}.yaml
# are deliberately committed; weft.toml is operator-authored and tracked.
# DO ignore transient sibling port files: a committed .weft/<sibling>/ephemeral.port
# would let a shared repo redirect wardline's token-bearing emit to a chosen loopback
# port (a live, never-committed runtime artifact, not tracked state).
.weft/*/ephemeral.port

# Filigree issue tracker
.filigree/
.env
Expand All @@ -33,4 +42,3 @@ CLAUDE.md
.coverage
coverage.json
loomweave.yaml
wardline.yaml
Loading
Loading