Ran the documentation skill review (Rule-of-5,
Diátaxis/EPPO/scan/accuracy/AI-readiness) over ddl's human-facing docs:
README, mdBook docs/src/*,
llms.txt/llm.txt — 18 findings (3
CRITICAL).
Fixed all in PR #60 (edfe7fc +
43bc9db, merged ead7189): installation.md
Linux curl 404 → working version-resolving one-liner + platform matrix;
quick-start stale tool facts (11 tools; install-only =
bd/openspec/incitaciones/turu); architecture.md symlink direction
(.wai/ → .ddl/wai/); introduction prereq claim;
troubleshooting tool list + maintainer postmortems → new
fleet-incidents.md; new glossary.md; README
problem/solution de-duplicated + status bullets; alias-table scope note;
release runbook (CHANGELOG + versions.ddl.toml); contributor notes on
the 5 design specs; llms.txt/llm.txt role cross-refs; docs.yml
generated-map header links source.
Rule-of-5 review of the changes caught 1 CRITICAL
self-regression (quick-start section split by my own edit) — fixed +
trailing newlines, amended. TypeSafe jev verification ran on
CRITICAL/HIGH findings (1 verified @0.87; 1 dropped-as-FP with scope
caveat — commit-provenance claim invisible in artifact text).
fotos-mcp/fotos cask removed from current-facing
docs per user (out of ecosystem scope since v0.8.0);
archives/CHANGELOG mentions kept per the 2026-09-29 openspec precedent.
Committed only my hunks of docs/ecosystem-map.md (file
carries another session's uncommitted SVG-map work — preserved
untouched, still in working tree).
release.md version-drift finding resolved-by-design:
gitignored + generated by docs.yml at deploy (noted in whisper
env.md).
Gates: just ci ✅, tool_registry_drift 10/10,
standard_conformance 22/22, mdbook clean. Disclosed in PR: one paragraph
(GitHub topics) swept in from a prior session's working tree
(DRAFT-001).
Next: watch the Docs workflow deploy (fixed install
page + glossary go live); optional LOWs from review: arch-fallback note
in installation.md curl section, installation.md section order; other
session's ecosystem-map SVG work still uncommitted in the ddl working
tree.
Checked user's re-download zip: 0 new periods —
Galicia regenerates PDFs per download (text-identical, bytes differ);
portal only re-serves same periods.
Activity-consistency check (user's hypothesis,
confirmed): MC auto-debits from caja 0401855071 → all 43
PAGO TARJETA MASTER legs reconcile present cycles to the
cent; every missing cycle's payment window has zero legs ⇒ missing
months = no activity. Discovered: 2021 pre-corpus
activity (13 cycles Dec 2020–Dec 2021, no statements ever
downloaded — new HITL priority) and the Dec-2025 fraud
episode (9.012.939,67 reversed 100% as TRANSAC A INVESTIGAR in
Jan-2026; 15.045,26 re-instated Feb-2026) — new parser shapes noted on
finanzas-90q.3.
Next: approve proposal → claim finanzas-90q.1
(unzip) or 90q.4 (Amex parser); HITL: bank request for 2021 resumenes;
wai pipeline run tdd-ro5-…store-emission still parked at ship-close
(step 9/9) from a prior session — close it before starting this change's
own run.
Wired up the new arltificial GitHub account for
~/para/areas/dev/gh/at/arltificial, following the
established per-identity pattern: generated ed25519 key
~/.ssh/id_at; created ~/.ssh/profiles/at
(Host at → ssh.github.com:443,
IdentitiesOnly yes — added after the initial test
authenticated as akielbowicz via an agent-loaded key); added url
rewrites (git@at:arltificial/ + https) and
includeIf gitdir:…/gh/at/ to
~/.config/git/private; created
~/.config/git/profiles/at with user identity.
Email decision: initially set GitHub noreply as default → user chose
[email protected] (one typo round: artlificial →
arltificial). Verified repo resolves user.name=arltificial
/ [email protected], origin rewrites to
git@at:arltificial/arltificial.git.
User added the pubkey to GitHub out-of-band;
ssh -T git@at → Hi arltificial! ✅. Confirmed
none of the touched files (~/.ssh/*, ~/.config/git/private,
~/.config/git/profiles/) are chezmoi-managed (only ~/.gitconfig is), so
direct edits were correct.
Next: repo is ready to commit and push; optional
ServerAliveInterval keepalives on the at ssh
profile only if long pre-push hooks show up (cv precedent).
Diagnosed the live-site homepage errors (user-reported "missing
Intention, table named Frontmatter"): the canonical four layers are
Intent, Constraints, Model, Properties (Intent = the
frontmatter, not a table); "Intention" appears nowhere in the repo. Root
cause: hand-maintained summary prose in 4 independent copies (index.md,
faq.md, llms.txt, book.toml) with no gate on docs
terminology — site is a faithful CI rebuild of docs/src
(mdBook, docs.yml on push to main), not deploy drift.
Fixed (commit rode along with the other session's
jf1 single-tree migration, later confirmed live via curl): index.md
intro + layer table ("Intent (frontmatter)"), faq.md/llms.txt
"four-layer schema", tool-relationships.md "four specodelic layers",
book.toml description, llm.txt via stamp_llms.py root.
Filed beads follow-up for a prose-terminology gate.
Similar-issues sweep after the migration session
closed — found and fixed pack-count drift
(d8f97ce): quant.finance (v0.8.0) missing from
every doc surface; README/index/faq/llms.txt said "four packs / three
standard packs" → now five packs (four standard + bioimage pilot), named
bioimage's actual ## Requires packs; llms.txt Constraints
summary "invariant/effect" → full closed set
invariant/advisory/effect/extension_point (matches
src/guide.rs).
Verified clean: nine explain topics (test-gated),
five EARS patterns, five kinds, three compile artifacts, llms.txt
command list vs 0.9.0 CLI, Revision 15/16/17 pins (feature-origin refs).
Local spk install stale (0.7.0 vs 0.9.0, missing
skill) — relates to open specodelic-6bq2.
Gates: just docs-build ✅, doc-examples ✅,
summary-completeness ✅, pre-commit hooks green (ah-check, gate-drill,
pretender, sibling-blockers, corpus lint 0 findings); release.md
build-stamp refreshed via just stamp-artifacts, amended
into the commit.
Next: push d8f97ce to main (deploys
Pages) — pending user authorization at close; prose-terminology gate
issue open for pickup.
/renew resume: clean slate (main @ 515b3f9, nothing in
flight; skill-pack epic + kbmv all closed). Picked
specodelic-vpq — the one tracked docs gap that matters
for onboarding/pitching: no "what this format assumes / when NOT to use"
anywhere.
Positioning section added to
openspec/USAGE.md right after the intro: the
spec-first/agent-authored/regenerable-code assumption; four pure-tax
cases (hand-maintained code, throwaway prototypes, quantitative claims
needing real checking, specs already maintained elsewhere); the honest
one-line test — will anything mechanical consume the structured
rows? Worded against the convergent verdicts of the 2026-10
external evaluations (prose_untouched ↔︎ domain-semantics tension).
Site mirrors: docs/src/index.md "Is
this for you?" paragraph on the cold-read path;
docs/src/faq.md Basics answer "Should I use this for my
hand-maintained codebase?" — both link to the USAGE section as
authoritative. CHANGELOG entry added.
Gates: just docs-build ✅, spk lint 0
findings, ah check clean, lefthook pre-commit/pre-push
green. Landed 427bf9a on main, pushed; vpq closed +
beads exported; turu repo-scope landing record appended.
Presentation-ready story for today: index → "Is this for you?" →
worked example → verification boundaries; the one-line test is the
"honest pitch" slide beat.
Next: none pending from this session — backlog
pickup (04c kernel.binding decide, 9b1h clippy) is between-epics
work.
Session:16:31 (specodelic
— v0.10.0 release)
Release decision: audited v0.9.0..HEAD (17 commits, 8 feat/fix) →
recommended v0.10.0 minor, not patch:
specs/ retirement (jf1) is workflow-breaking for external
tooling, plus two panic-class fixes (verify pipe-buffer deadlock kbmv,
migrate byte-OOB panic 7i7). Open bd items (all P2/P3) confirmed
non-blocking.
Followed the v0.9.0 release recipe (recovered from that tag's commit
body): Cargo.toml/lock bump; version literals in README, status.md,
installation.md, worked-example.md; stamped artifacts via
just stamp-artifacts (release.md + llm.txt, never
hand-edited); CHANGELOG #131 release entry. doc-examples version-drift
is advisory-only → no re-capture needed.
Gates: just ci green — ah check --run-tests 210 passed
0 findings (the ✗ reference_oracle.rs line in pretender
output is a cognitive-complexity advisory, not a test failure).
Commit 4893654 (pre-commit hooks green), annotated tag
pushed → Release/Docs/CI workflows all queued (Release = 5-target
binaries + crates.io + tap updates; run 38455399664).
Gotcha found: first tag push failed silently —
fetch.pruneTags=true (repo + global config) made
git pull --rebasedelete the just-created local
tag before the push ran
([deleted] (none) -> v0.10.0 in fetch output). Fix:
recreate tag + push refs/tags/v0.10.0 atomically. Routed to
whisper env.md.
Next: watch gh run watch 38455399664
completes (crates.io + taps); if a tap lags, the charly-vibes-tap
catch-up pattern in whisper rules.md applies; consider
fetch.pruneTags=false locally if tag-push-then-pull
recurs.
Session:17:57
(wild — first crates.io release + justfile standard)
Release question → prep → ship: /renew
resume (clean slate, bd empty, main == origin/main) + user asked "should
we release a new version?" → established there was no prior version:
wild-vibes did not exist on crates.io, 0.1.0
untagged, wild-6ig's publish intent was deferred. User approved prep,
then "continue" authorized the full release.
Published wild-vibes 0.1.0 (first release): commit
410e44e (description + Apache-2.0 license per org
convention — espectacular/dont/bajan/crua standard — + repository URL +
full LICENSE text); tag v0.1.0; cargo publish
live on crates.io (license confirmed in version record). Framing: 0.1.0
marks prototype semantics.
Packaging-hygiene gotcha (durable): cargo's
include is additive over the git-tracked default set, and
exclude is silently ignored when include is
present (cargo 1.98.1) — exclude-only is the working shape; it also
overrides cargo's auto-inclusion of every README/LICENSE in the tree
(was shipping .devenv venv licenses, .beads, .pytest_cache). Crate went
567 files/2.0 MiB → 58 files/169 KiB, shipping only src/, schemas/, docs
source, tests/runtime/ + tests/v1_checker.rs. Verified from clean
checkout of the .crate: cargo test 14/14, release build clean.
just install fixed: wild's gate-only justfile
lacked the org-standard install recipe (present in
dulce-de-leche/bajan/crua/dont/bichos). Added
cargo install --path . → installs the wild
binary (package publishes as wild-vibes). Landed ff5efa0,
pushed, gates green.
turu branch landing record appended (id b677fe35). bd: nothing to
file — no open items.
Next: nothing pending from this session; pickup is
between-epics (older snaps point at wild-9co.2/.3 codex-lane items —
re-check bd deps at /renew).
Session:18:04
(gently — mdbook docs published + first crates.io release)
/renew resume: docs-review + gallery waves closed; 7
release-prep commits (parallel lanes: lmu/cpc/skn/go8/ca0) sitting
unpushed; origin CI red. User asked to "publish the documentation" →
clarified into both: mdbook Pages book (gently-hny) +
crates.io release (docs.rs).
Unblocked origin CI first: both failures were
already fixed by the unpushed commits (go8's fmt skip_children recipes +
#![allow(dead_code)] in shared tests/common). Pushed
43d7d4e..7c95bc2 → CI + Smoke green.
gently-hny CLOSED: book.toml (src=docs/src,
target/book), SUMMARY + introduction,
just docs-sync/docs/docs-serve, docs.yml (taiki-e just +
peaceiris mdbook, Pages deploy). Anti-drift design:
gallery/examples/known-hard-cases/release.md pages GENERATED into
gitignored docs/src by docs-sync (links rewritten to book siblings,
version claims from Cargo.toml); docs.yml runs the same recipe — local
and CI builds cannot diverge. Book live: https://charly-vibes.github.io/gently/
One new CI red found+fixed (c66b36d): deny.toml
allowlist never got GPL-2.0-or-later when the compliance wave set the
license — cargo-deny rejected both workspace crates. All green.
PUBLISHED: CARGO_REGISTRY_TOKEN set from
~/.cargo/credentials.toml via gh secret set (never echoed, user
authorized); tag v0.1.0 → Release workflow green; gently-core 0.1.0 +
gently-cli 0.1.0 on crates.io (API-verified, repository linked); docs.rs
rustdoc live for core; Pages book 200.
Durable findings routed to turu branch snaps during session (deny
allowlist gotcha, readme workspace-root resolution, docs-sync anti-drift
pattern, dry-run resolution limitation).
Next: nothing pending from the publish wave; pickup
is the divergence sweep — bd: 4ga, 58m, awd, byq, fb1 (P2, roadmap in
docs/known-hard-cases.md) + if4 (P3). Optional: README link/banner to
the Pages book.
Session:20:07
(specodelic — evidence-backed status report → macOS CI starvation
fix)
Ran the project-status-report skill over specodelic
(evidence-gathered, not narrated): v0.9.0 + v0.10.0 both shipped
2026-10-13, jf1 single-tree migration landed, verify-hang +
migrate-panic fixed; 4 openspec changes 100% task-complete but
unarchived
(add-conform/add-graph-views/add-migrate-rekey/update-id-derivation-spec-md);
42 open beads (25 ready); 2 not-started changes (py/ts fragment
emission). Overall verdict Amber: main CI red ×2 — but
only the macos-latest leg, on GitHub arm64 runner
capacity ("job not acquired by hosted runner", zero steps
executed; runs 38455309329/38453309601). Windows/MSRV/deny/full-pipeline
green in both → infra, not code.
Found + filed the one untracked issue:
specodelic-xskh (P2) — verified Release's macos leg
succeeded (13m24s) to confirm capacity flake before filing.
Landed the fix (user picked work-on-it):
.github/workflows/ci-retry.yml — one-shot auto-retry keyed
on workflow_run, re-runs failed jobs only when every failed
job has no completed steps (never masks real failures), attempt-1-only
(no loop); workflow_run evaluates the default-branch copy
so landing on main arms it. New drift guard
ci_retry_pins_infra_re_run_with_guards in
tests/ci_wiring.rs (specodelic-oet contract style); kept
macos-latest string (matrix guard pins it literally).
Gates: full cargo test 0 failures, clippy --tests -D
warnings clean, fmt clean, YAML parse clean. Commits
fix(ci) + beads: close specodelic-xskh (+
bd export -o .beads/issues.jsonl flush — plain
bd export writes stdout, needs -o). Pushed
49e1a2e after rebase; CI run 38481484232 green
5/5 (macos got a runner immediately); CI-retry workflow fired
correctly as a no-op on the green run (38481919794).
Durable findings routed to ~/.whisper/repos/specodelic/env.md
(runner-starvation pattern + retry design + bd export gotcha). Honest
unknown: retry's re-run path is logic-verified only — it
self-demonstrates on the next real starvation.