Bookmarks

Things to revisit later. Triaged via the session bookends (/save-progress, /good-morning) and on demand.


  • 2026-05-27 — Define effort levels for different tasks, possibly along with model overrides for commands (e.g., specify Haiku for cheap tasks, Opus for hard reasoning). Update 2026-06-02: the model: skill frontmatter field does the per-skill override natively — accepts the same values as /model (or inherit), applies for the rest of the current turn, and isn't saved to settings. So model-per-skill is built-in, not a hack; it sits alongside disable-model-invocation / allowed-tools / disallowed-tools as the per-skill config vocabulary. (Source: code.claude.com/docs/en/skills.) Update 2026-06-09 — intent sharpened (still parked). The aim is to push model/effort routing into the toolkit's substrate so skills/commands auto-pick the right tier instead of Brad hand-toggling (today he just sits on Opus 4.8 / High effort and flips things in Claude Code per session). Likely shape: sort the toolkit by cognitive weight — mechanical skills (relink, hygiene-check stamping, save-progress bookkeeping) pinned to a cheap/fast tier via model: frontmatter, reasoning-heavy partners (brainstorming, planning) left on Opus-High. Step one is a research/learning pass on best practices (model-routing patterns, when cheaper/faster tiers are safe, how others structure this) — Brad wants to do that reading first, before any design. Explicitly not now; parked until then.
  • 2026-05-27 — Commit-hash stamping on crawled artifacts (the per-run side of the metadata pattern, for Odin Codin' when it starts producing output).
  • 2026-05-28 — Trial Claude Code's native Tasks (TaskCreate/TaskUpdate/TaskGet/TaskList — the system that replaced TodoWrite in v2.1.16) for in-session multi-step work tracking, NOT as a bookmark replacement (bookmarks stay the durable, git-versioned, human-curated backlog). Today's personal-layer migration into personal/ would've been a good candidate. Also evaluate whether it complements current-plan.md's phase tracking.
  • 2026-05-28 / 2026-05-29Parallel execution & concurrent sessions (cluster). How Brad eventually multitasks across parallel Claude instances — human-in-the-loop, never autonomous (firm guardrail). Three facets:
    • Open exploration: running multiple Claude windows / agents / workflows at once without context bleed, and how shared state (working-copy plan files, bookmarks, the .meta/ pattern — Tasks could be Seafile-synced, so machine-local isn't a hard blocker) coordinates sessions that can't see each other's context. Open questions: purpose-fit and concurrent-session conflicts. Brad is open to some form; flagged for a dedicated later discussion, not now. The settled advisory-subagent carve-out (now an AGENTS.md convention + README.md philosophy note as of 2026-06-12, originally settled in the current-plan.md catalog — independent subagents allowed as read-only critique lenses, never autonomous) is the first concrete primitive here.
    • Concrete Odin Codin' reference (Phase 6): before designing OC's subagent layer (branch-crawler / source-verifier / decomposer), read superpowers' subagent-driven-development and dispatching-parallel-agents SKILL.md (github.com/obra/superpowers — verify paths, skills can execute code). Borrow the two-stage review gate and git-worktree isolation for conflict-free parallel work. Same family as the "agent teams" architectural bookmark in current-plan.md.
    • Worktree best-practice (researched 2026-06-04): git-worktree-per-agent is the settled industry primitive for parallel agents on one repo (isolate files, never share a working tree; merge one worktree at a time; ~3–5 agent practical ceiling). Claude Code supports it natively — claude --worktree, the EnterWorktree tool, isolation: worktree subagent frontmatter, with auto-cleanup; worktrees branch from origin/HEAD (fall back to local HEAD with no remote, or set worktree.baseRef: "head"). Recombination resolved 2026-06-04: the git-working-tree-discipline thread adopted finishing-a-development-branch's menu minus the PR option — local merge-back / keep / discard, which needs no remote and de-couples this from the deferred GitHub-remote question. (Detail in current-plan.md's "Git working-tree discipline" section.)
  • 2026-06-03additionalDirectories to make Yggdrasil a first-class workspace root alongside an execution partner. When cwd is an execution partner like Odin Codin', the symlink architecture exposes Yggdrasil's skills/commands but not its repo files (current-plan.md, design docs, SKILL.md sources) — those prompt or need /add-dir. Setting additionalDirectories: ["/var/projects/yggdrasil"] in the partner's per-project .claude/settings.json adds Yggdrasil's tree as a co-equal workspace root, so cross-layer work (executor reading/adapting the generic plan template, consulting the design partner's docs) has no per-file friction. Bonus: declaring it in the partner's own settings mirrors the composition / dependency-injection architecture — the dependent layer declares "Yggdrasil is first-class here." Relevant when wiring Odin Codin' symlinks (Phase 9) and the planning-altitudes generic→tailored handoff. Distinct from path-scoped Read() permission rules (which just pre-approve reads without adding a workspace root). Surfaced 2026-06-03 while wiring read whitelists during the planning-skill brainstorm.
  • 2026-06-03Generic fixed task-schema as a possible upper-layer (toolkit) feature. While designing Yggdrasil's planning skill we chose the verifiable-outcome task anchor and rejected a generic fixed schema (every task fills Inputs / Action / Output / Verification fields) for Yggdrasil — too heavy/form-like for the domain-agnostic layer, and it fights the "scale detail to complexity" principle. But a rigid schema may genuinely fit a domain-driven toolkit one layer up (e.g. a code-crawling or budgeting toolkit where uniform task shape aids batch execution / verification). Revisit when building a toolkit's own domain-driven planning methodology — does its domain want the structure Yggdrasil's generic layer deliberately avoids?
  • 2026-06-03Web-research phase in the brainstorming/planning front end. Brad wants a research beat where — as part of the brainstorming phase — we search the web for best practices and ideas on how to approach the plan/design, then go back and forth discussing what we find before committing to an approach. A collaborative "survey the landscape" step early in design (likely an addition near brainstorming Step 1 Understand the Current Context, and/or the planning skill's front end). Relates to the existing learning-new-skills "keep current" research machinery — reconcile when designing. (Meta-note: this item is itself a textbook tier-2 project-level future-enhancement parked item — an out-of-scope-for-now improvement to the already-built brainstorming skill — i.e. a live example of the very category we were defining when it surfaced.)
  • 2026-06-04How should the ## Session lessons block in current-plan.md grow / handle bloat? Today it just accumulates dated per-session blocks — no pruning or graduation defined. Checked the referenced public repos (2026-06-04): the pattern is Yggdrasil-native. superpowers (our brainstorming/writing-plans source) has no session-lessons/retrospective equivalent — brainstorming has a per-design decision log, writing-plans a per-plan Self-Review, neither cross-session — and the antigravity community skills we touched don't either. So there's no external bloat-handling guidance to inherit; it's ours to design. Direction (Brad, 2026-06-04): treat session lessons with the same machinery as bookmarks — (1) the same dated entry format (- **YYYY-MM-DD** — …) rather than grouped per-session blocks; (2) the same accumulation-management rules (per-project bloat nudge / count thresholds); (3) the same graduation path — a proven lesson graduates up a layer (into AGENTS.md / CLAUDE.md as a durable convention) rather than living forever as narration; and (4) its own permanent append-only log for pruned lessons, mirroring the pruned-items archive/ archive idea in the parked-items design (one archive for bookmarks, a sibling one for session lessons). Net: session lessons and bookmarks become two instances of the same parked-item primitive — folds straight into the parked-items / bookmark-unification thread. Bloat is acceptable for now; revisit later, not urgent. (Same accumulating-list-hygiene family as the scratchpad-cleanliness item in the bookends cluster below.) — Design-resolved 2026-06-05: session lessons are now a List descendant (flat dated entries, nags, ~weekly review, graduate-up/archive exits) in the accumulating-list hygiene design (working/2026-06-05-list-hygiene-design.md §5.2). Build pending.
  • 2026-06-04Hooks guarding the save//clear discipline (extracted 2026-06-10 from the now-archived "Bookends & doc-hygiene refactor" cluster — its command-structure and scratchpad-plumbing parts shipped in the list-hygiene/bookends build; its folder-layout part lives in the design-doc org-scheme bookmark). (a) PreCompact hook to alert when compaction is imminent (fires before manual /compact and auto-compact; input has a trigger field = manual/auto) — reuse the bell.ps1 terminal-notification pattern, and on trigger: auto nudge "save + /clear instead" so it guards the /clear discipline. Also consider raising/disabling the auto-compact threshold via settings for full manual control. (b) optional SessionStart hook to inject "read the plan" if hard enforcement is ever wanted (lower priority — the personal-CLAUDE.md note already covers the soft version). Verify exact hook-input schemas + the auto-compact config key against code.claude.com/docs (or the claude-code-guide agent) before wiring — names drift between versions; PreCompact likely notifies/customizes but can't block compaction (the threshold setting is the real veto).
  • 2026-06-04A uniform repo-maintenance routine across all layer-repos (personal, Yggdrasil, each future toolkit) — not Yggdrasil-only. Apply the same git working-tree discipline (session worktree/branch, the merge-back/keep/discard disposition, doc-hygiene/consistency-check) consistently at every layer, including the personal layer. Sprang from the bookend-worktree-wiring Loose End 2 (cross-repo edits during a session: the disposition menu only governs the session's primary repo, so the other layer-repos have no equivalent routine yet). Couples to the parked-items / bookmark-unification design and the now-shipped bookend//hygiene-check system (the old "Bookends & doc-hygiene refactor" cluster, now in archive/bookmarks.md) — each layer is its own git-backed scope — bookmarks, plans, and now maintenance recur per-layer. Explore fresh when that thread resumes; don't half-design tired. Update 2026-06-09: the xrepo-* reserve-prefix decision (why cross-repo disposition is deferred) and the intended-usage design for the hypothetical future world (reach-in worktrees, multi-repo disposition, the pre-reach-in warning) are recorded in the list-hygiene plan's ## Deferred section (working/2026-06-08-list-hygiene-plan.md) — start there when this resumes.
  • 2026-06-05 [soon]Research-reports hygiene. Define how learning-new-skills' optional research/YYYY-MM-DD.md dated history files get managed / pruned / archived — they're the "dated-file cousin" of the Archive primitive (append-by-dated-file rather than append-within-a-file). Deferred follow-on from the accumulating-list hygiene design (working/2026-06-05-list-hygiene-design.md §10); rides with the /hygiene-check build. (Consistency-check scratchpad hygiene — the other deferred Scratchpad item — shipped with the list-hygiene/bookends build: working/hygiene.md drains to archive/hygiene.md.)
  • 2026-06-05Promote /scry into a reusable personal-layer research command. Being built now as a puppet-mode-scoped command in Yggdrasil (Hugin-raven-themed: directed research, save topic summaries, store cloned repos + handed artifacts under a target's .puppet/<target>/research/ dir). The name + concept are good enough to generalize later into a standalone personal-layer /scry reusable across any project, not just puppet mode. The puppet-scoped version is the prototype; lift the general-purpose research machinery (directed search, save-summary, clone-repo, hold-artifact) up to the personal layer once it has proven itself, decoupled from the puppet target's .puppet/ plumbing. Surfaced 2026-06-05 while designing the /puppet command + its /scry companion.
  • 2026-06-06 [priority]/puppet's /good-morning reuse is a latent major bug — replicate the needed bits inside /puppet instead. /puppet step 2 bootstraps by reading commands/good-morning.md as text and following it. /good-morning is designed but not yet built to gain session-worktree creation + a checkpoint/pin on entry; the moment that lands, /puppet would inherit worktree-creation and a Yggdrasil checkpoint — directly violating puppet's own "No Yggdrasil checkpoint on the way in" gate, and pinning/committing Yggdrasil's plan during what is meant to be a read-only adoption of a foreign project. Fix direction (Brad's call 2026-06-06): stop reusing /good-morning wholesale; pull out only the bits puppet actually needs and replicate them inline in /puppet, decoupling puppet's bootstrap from good-morning's evolving bookend behavior. Note (clarified 2026-06-06): Brad wants to keep the full Yggdrasil bootstrap — loading current-plan.md and inheriting Yggdrasil's skills/commands — so puppet sessions get recorded in Yggdrasil's logs/lessons; the bit to shed is good-morning's coming session-worktree creation (a read-only sandbox adoption must not spin a worktree), not the plan-load. Do this when the good-morning worktree/checkpoint work is built, or sooner. Surfaced in the 2026-06-06 /puppet audit.
  • 2026-06-06Review /puppet's target-path → .puppet/<label> encoding for edge cases. The label is built by dropping the drive colon and hyphenating path separators (C:\Projects\XI-RE-VibeTestingC-Projects-XI-RE-VibeTesting). Unhandled: spaces in paths, UNC paths (\\server\share), trailing separators, possible label collisions. Low concern for now (Brad's paths are clean) — bookmarked for review, not urgent. Surfaced in the 2026-06-06 /puppet audit.
  • 2026-06-06Give /puppet (+ /scry) a proper section-by-section design review / write-up — later, or as it evolves. The feature was designed in a now-cleared session (Brad was happy with the design at commit 96153c1); a full formal write-up is deferred on purpose because puppet is expected to change a lot (lifespan open — may graduate into Odin Codin', may become its own thing). The design intents are recorded in working/current-plan.md (the "Foreign-project adoption" section) so they survive /clear; this bookmark is for the eventual brainstorming-style walk + dated design doc once the design settles. Pairs with the [priority] good-morning-reuse fix and the scry→personal-layer move. Surfaced in the 2026-06-06 /puppet audit.
  • 2026-06-06Add a "fresh-eyes / zero-context" subagent review pass for durable docs (current-plan.md, design-intent notes, handoff text). Both Brad and Claude habitually assume shared session context when writing/reading these updates, so phrasing that reads clearly now relies on inference a genuinely fresh Claude (post-/clear) can't reconstruct. Idea: dispatch a read-only subagent that reviews the doc/edit in isolation — it literally is a fresh run, having none of this session's context — and flags anything unclear or inference-dependent. Live example from today: the phrase "design intents which nearly evaporated with that /clear" — a fresh reader can guess "something was lost after a clear" but not what precisely, or why. This is a new review lens (zero-context clarity), kin to the Skeptic / User-Advocate / Steward / Constraint-Guardian lenses already in the Design-review lenses + Advisory subagents catalog entries (read-only critique subagents are explicitly allowed). Likely incorporation point: a /save-progress pre-commit pass that runs the fresh-eyes subagent over the checkpoint + plan edits before they're committed (and maybe /good-morning on the way back in); exact home open. Surfaced 2026-06-06 while recording the /puppet design intents.
  • 2026-06-06Revisit how design docs are saved & organized (general scheme). Today they land ad-hoc in working/YYYY-MM-DD-<name>-design.md (e.g. list-hygiene) with no real structure — fine while there are only a couple. Worth a deliberate scheme as they accumulate: directory layout, naming, how a design doc relates to its current-plan.md pointer, where "intents recorded but not yet formalized" lives, lifecycle/archival. Subsumes the narrower specs/+plans/ folder-layout idea (originally a bullet in the now-archived "Bookends & doc-hygiene refactor" cluster, in archive/bookmarks.md) — this bookmark now owns that disposition. Low urgency (Brad: not worried right now, few docs yet). Surfaced 2026-06-06 while deciding where to record the /puppet design intents. Update 2026-06-09 (suffix sub-item DONE; org-scheme still open): the -design.md / -plan.md suffix-pairing is documented — both skills' save-sections now state it. Naming also settled: dateless while active (the design/plan pair shares the exact stem, e.g. list-hygiene-design.mdlist-hygiene-plan.md), with a date prepended only at archive time. Still open — the org-scheme proper: directory layout; the when-to-archive lifecycle (a design archives once its plan is executed; a plan archives once all fresh-session Confirm-bys pass — pairs with the planning skill's final-verification step); and where archived design/plan docs live. Take these up together.
  • 2026-06-06 [priority]In-flight design can evaporate before it's ever persisted. Primary mode (the likely puppet case): a design drafted only in conversation, never written to disk — the session works the plan through to completion and the in-context draft simply never gets materialized, then dies on /clear. Our investigation matches this: no standalone puppet design file ever existed anywhere. Secondary mode: a design that was written but sits untracked / volatile — uncommitted (no git trace: not committed, not staged → no dangling blob), or living inside a session worktree a later disposition could discard. Either way, the only safety net was Seafile's server-side history, now being deprecated for GitHub — once it's gone, nothing catches this. Confirmed exhaustively for puppet (git commits/staging/dangling/stash/worktrees, live disk, Seafile write-fingerprint log + server trash): no design file ever existed; the rationale survived only via a later hand-salvage into current-plan.md prose. Interim guardrail (done 2026-06-06): /save-progress step 1(a) sweep now prompts to materialize substantial in-conversation design as its own committed working/YYYY-MM-DD-<name>-design.md, and to commit/capture anything in a volatile spot (uncommitted, or in a discardable worktree) before session end. Real fix: the planning skill (durable design/plan artifacts) + accumulating-list hygiene + bookends/doc-hygiene refactor — this is the stopgap + principle until those land. Cross-links: the design-doc organization-scheme bookmark (above), the now-archived bookends & doc-hygiene cluster (in archive/bookmarks.md), the fresh-eyes pre-commit-pass bookmark, the git-working-tree-discipline section (worktree disposition), and working/2026-06-05-list-hygiene-design.md.
  • 2026-06-06Scry clone hygiene: size / shallow / nested-.git. /scry's repo clones can be heavy (the 2026-06-06 test pulled Caradog-XI-View ≈124 MB + XiView ≈39 MB ≈ 163 MB into .puppet/.../research/repos/). Used --depth 1 by judgment; scry.md doesn't specify it. Open before settling (Brad: more consideration first): make --depth 1 a documented default for asset-heavy repos? strip each clone's nested .git when we only want assets (harmless since .puppet/ is gitignored, but bulky)? any size cap / cleanup policy for research/repos/? Surfaced in the 2026-06-06 /scry test.
  • 2026-06-06gh CLI on PATH + a new-machine-setup "Brad does this" STOP pattern. During the /scry test gh was not on the Bash PATH (only git clone + WebSearch worked), so scry/source-fidelity must not hard-depend on gh — the scry URL-discovery edit now says "WebSearch, or gh if available." Two follow-ups: (1) Brad adds gh to PATH manually and verifies it himself — do not automate the PATH change. (2) Once a manual walkthrough nails the exact commands/paths, add a step to the new-machine-setup playbook that STOPs and tells Brad "this is what you need to do to get gh on the PATH" with copy-paste commands. Generalizes to a reusable pattern: machine-level steps Claude can't/shouldn't perform get handed to the human as explicit copy-paste actions. Deferred until the walkthrough. Surfaced in the 2026-06-06 /scry test.
  • 2026-06-08Revisit the anti-rot aging thresholds (~14 days, uniform) after real use. The accumulating-list-hygiene design's per-item aging mechanism (§4 #8) surfaces items untouched past ~14 days as an informational "want a look?" signal across all live lists. 14d is a first guess picked 2026-06-08; revisit once I've actually lived with it and have a feel for whether it nags too often or lets things rot too long — possibly tier it by list heat instead of one uniform number. Soft trigger: after I've used the thresholds a while. Update 2026-06-19 — a second open question for the revisit: the aged_count stamp is currently uncomputable because the aging convention is underspecified. The ## Deferred section says re-deferring an item resets its age clock, but for the lists (bookmarks especially) it's never defined whether appending an **Update YYYY-MM-DD:** to an existing entry resets that entry's clock. Many bookmarks carry old base dates (e.g. 2026-05-27) but recent **Update** stamps — so "untouched past ~14 days" has no single answer, and /hygiene-check left the bookmark aged_count at 0 on the 2026-06-19 pass rather than guess. Settle the does-an-Update-reset-the-clock rule as part of this revisit, since aged_count is what /good-morning surfaces as the aging signal — a wrong 0 silently suppresses it. Surfaced 2026-06-19 restamping the ledger during /hygiene-check. (Dogfood note: this bookmark is itself a soft-trigger deferral, parked via the very mechanism it's about.)
  • 2026-06-08Carry "git-backed by default" into the bookend worktree wiring. The planning skill's "Isolate execution from the source of truth" section assumes plans are git-backed by default (most work wants revision history; most output is markdown — trivially git-friendly), falling back to the bare isolation kernel only when something genuinely can't live in git. The session-bookend worktree lifecycle (/good-morning create-or-resume, /save-progress merge/keep/discard) is design-complete-but-unbuilt in current-plan.md ("Git working-tree discipline" + "Bookend-worktree wiring") and was framed around git-backed work but never explicitly states the git-by-default assumption for non-code (markdown) projects. When that wiring is built, make git-by-default explicit there too, so a non-code plan still gets a worktree/branch + disposition rather than being treated as a non-git exception. Surfaced during the planning-skill wording walk.
  • 2026-06-08 → 2026-06-09 [priority]Planning-skill improvements surfaced while dogfooding it on the list-hygiene build — fold back into skills/planning/SKILL.md. Using the planning skill to build the list-hygiene plan surfaced concrete improvements to the skill itself; captured here so the dogfooding gains don't evaporate when that plan is archived. (1) Checkboxes / ## Progress checklist (subsumes the standalone 2026-06-08 checkbox bookmark) — we left checkboxes off the planning Task shape during the wording walk, but trialed a ## Progress checklist on the list-hygiene plan 2026-06-09 as a convenience index over the Confirm-bys and it worked; promote to the planning Task shape, with the rule that a checked box is a claim and the Confirm-by stays ground truth (a box can lie if work was discarded). (2) Resumption convention — frame execution as isolation and resumption: every Confirm-by is an idempotent disk-state check, so a task is done iff its Confirm-by passes and re-running is a no-op; a fresh post-/clear Claude resumes by walking from the top, skipping what already holds. Strong fit for the /clear-between-sessions workflow. (3) Final verification pass — a closing task that walks every Confirm-by against disk + re-runs the Self-Review consistency check on the built artifacts (plan-scoped cousin of the Phase-12 capstone). (4) Lens-audit token-cost note (also a 2026-06-09 session lesson) — subagent lens audits are token-expensive; the 3-way opt-in should carry an explicit cost note. (5) Ask commit cadence at execution start (trialed 2026-06-09 on the list-hygiene walk — worked well) — when beginning to walk a plan, the execution handoff should ask the user (via AskUserQuestion) how they want commits handled — per-task / per-phase / on-request — then follow it without re-asking. A single up-front decision fits the low-friction + commits-are-the-human's-to-trigger conventions better than re-deciding each task; per-task gives the cleanest /clear-resumable checkpoints. Bake the question into the planning skill's execution-handoff section. (6) Confirm-bys need a "verify-by-walkthrough / first-real-use" fallback (surfaced 2026-06-09 executing the list-hygiene plan) — many Confirm-bys assumed a live run that couldn't happen at build time: cadence-gated steps weren't due, new commands weren't symlinked yet, and the bootstrap commands (/good-morning, /save-progress) can't run inside the very session/worktree they manage. The skill should bless verifying such a task by walkthrough + structural check (targets exist, wiring is sound) and deferring the live exercise to first real use, rather than implying every Confirm-by is a live invocation. Pairs with the final-verification step (item 3), which re-walks them. General mechanism worth naming: dogfooding a tool on real work surfaces improvements to the tool — capture them as scoped parked items against that tool so they feed a deliberate revision pass rather than getting lost in the work product. Do a planning-skill revision pass folding these in once the list-hygiene build is done (or sooner).
  • 2026-06-09Revisit git-permission pre-approval for the bookends (/good-morning, /save-progress). Both were reverted to allowed-tools: [Read, Glob, Grep] during the C1/C2 rewrites (Brad's call, to avoid baking a permissions decision into the build), so their worktree git ops prompt each run rather than running pre-approved — good-morning's git worktree list/add/remove + git log/branch/status (the per-session worktree lifecycle), and save-progress's pin auto-commit + merge/keep/discard disposition (via git -C). Decide later whether/how to pre-approve scoped git. Nuance for that review: permission rules are prefix matches, so Bash(git worktree:*) won't match a git -C … worktree command — save-progress (which uses git -C) would need Bash(git:*), while good-morning could use per-subcommand rules if it runs bare git from the repo cwd. Surfaced 2026-06-09 during the C1/C2 bookend rewrites.
  • 2026-06-11If/when Yggdrasil is ever "published," name it Vrataski.ai — after Sgt. Rita Vrataski (Emily Blunt) in Edge of Tomorrow (2014). The name encodes Yggdrasil's whole differentiating thesis vs. the autonomous-agent crowd: (1) human-driven augmentation, not autonomy. In the film, soldiers fight inside powered exosuit "jackets" — the human is in the suit, driving it; the tech amplifies the soldier rather than replacing them. That's the exact contrast with today's autonomous "agents" (the film's fully-autonomous war robots): Yggdrasil is the jacketthe human is always the driver, AI is the exosuit. (2) "Live, die, repeat" = iterative progress. Cage relives the same battle in a time loop, getting incrementally better each cycle until the goal is reached — a near-perfect metaphor for Yggdrasil's iterative, save-and-resume, each-session-moves-the-goal-forward workflow (and for agentic loops generally, done our human-in-the-loop way). Marketing-ready: a light, evocative identity that argues the philosophy rather than just labeling it. Pure naming/branding parking — no action until there's ever an appetite to publish/brand Yggdrasil (today it's a private dogfooding toolkit). Related: the backburner item "Public release of Yggdrasil and/or Odin Codin'" (2026-05-27) — this is the proposed name for that eventual release; the release decision itself stays backburnered until things stabilize. Surfaced 2026-06-11 while planning Kingdom.md. Update 2026-06-13 — Vrataski is being repurposed from an eventual rebrand into the name of a pivot: the direction now is to unify Yggdrasil, the personal layer, and the execution partners (Odin Codin' etc.) into one cohesive accessibility tool for neurodivergent people, and that unified thing is what Vrataski becomes. Thesis: the human-in-the-loop / never-autonomous design is what makes it an accessibility tool — it carries the executive-function execution load while leaving the person their agency and their own pace. Captured in working/vrataski-vision.md (vision/charter, reviewed via /brainstorming 2026-06-13) with a first-person external pitch in working/vrataski-pitch.md. Still an idea document / aspirational direction, not a plan — foundations come first, and a proper /brainstorming pass on the pivot itself is the eventual next step. The name still encodes the same exosuit/human-driver thesis above; it now points at a direction, not just a future label.
  • 2026-06-18Fold Odin Codin' into Yggdrasil — it no longer needs to be a separate project. Brad's call (2026-06-18): absorb the Odin Codin' code-crawling workflow into Yggdrasil rather than keeping it as its own sibling repo/layer. Start as its own process after the Seafile retirement completes (the three-repo move to C:\Projects\ + doc scrub). Interaction to respect: the Seafile work still relocates odin-codin as its own repo (C:\Projects\odin-codin\) — kept decoupled on purpose; this consolidation is a separate designed effort that decides the final structure. Worth a /brainstorming pass on what "folding in" means concretely: relocating OC's skills/agents/commands under Yggdrasil, the .meta/workflow.yaml dependency declaration, whether the odin-codin repo is archived or merged-with-history, and re-evaluating the layered-toolkit framing (personal → Yggdrasil → execution partners) now that there's one fewer layer. Cross-ref the Vrataski "unify everything into one accessibility tool" direction (2026-06-13 update above) — same consolidation instinct. Surfaced 2026-06-18 during the Seafile-retirement brainstorm.
  • 2026-06-18Repurpose AGENTS.md as an external-facing doc; migrate internal-use conventions into an (auto-loading) CLAUDE.md; update /good-morning to match. Finding (2026-06-18, verified via the claude-code-guide agent against code.claude.com/docs/en/memory.md): Claude Code auto-loads CLAUDE.md, never AGENTS.md — AGENTS.md only enters context if @-imported into a CLAUDE.md or read explicitly. It's host/OS-independent (Claude Desktop and a future Ubuntu terminal run the same engine, same loading rules). Implication: Yggdrasil's conventions live in AGENTS.md, so they don't auto-load today — they reach context only because /good-morning reads AGENTS.md during orientation. Brad's direction (2026-06-18): keep AGENTS.md but re-aim it at non-Yggdrasil consumers (other agents/tools/people examining the project from the outside), and migrate internal conventions into a Yggdrasil-level CLAUDE.md (auto-loaded, reliable) as needed. A minimal yggdrasil/CLAUDE.md is being created now (in the Seafile-retirement work) carrying just the omit-Co-Author convention — the seed of this migration. /good-morning needs updating when this proceeds: its orientation step currently leans on reading AGENTS.md for conventions; once those auto-load via CLAUDE.md and AGENTS.md is external-facing, the orientation reading-list + rationale change. Pairs with the Odin-Codin'→Yggdrasil fold (above) and the Vrataski unification — all three reshape the layered-doc story. Separate effort, after Seafile retirement. Surfaced 2026-06-18 during the Seafile-retirement brainstorm.
  • 2026-06-19 [soon]Spin migration into a SYSTEM.md document (not a skill), designed as part of the current-plan.md + related-docs refactor. Decided mid-/brainstorming (2026-06-19) while designing the new-machine-setup disposition: instead of a migration skill, capture "what each migration did and why" as a durable SYSTEM.md system-of-record. Brad is working toward a broader refactor of current-plan.md and related files, and SYSTEM.md should be shaped as part of that effort, not ad hoc — so two buckets park here until then: (a) the migration record (the what/why/how of the Windows→Linux move; source material = the relink.ps1/relocate-claude.ps1-era scripts + seafile-retirement-* / host-relocation-design.md), and (b) the fresh-host bootstrap (clone repos → set git identity → install settings snapshot → marketplace plugins → initial wiring; doubles as disaster-recovery / a future second host). Pairs tightly with the deferred "review the design of current-plan.md itself" (2026-06-09). Consequence for new-machine-setup: its relink can extract to the new skill-wiring skill now, but its record + bootstrap content can't move until SYSTEM.md exists — so the skill stays in place (dormant, Windows-era) until this lands. Cleanup hook (added 2026-06-19, de-Windows sweep): the de-Windows rewrite left forward-references to the planned SYSTEM.md across the swept docs — claude-personal/CLAUDE.md (### Repo layout & wiring + ### Settings sync), claude-personal/claude-config/README.md (top blurb), and yggdrasil/working/current-plan.md (Hook infrastructure) all point bootstrap content at it — when SYSTEM.md is written, grep -rn "SYSTEM.md" across both repos and revisit each spot so the references point at a real doc, not a plan. Also decide SYSTEM.md's home then (left bare/pathless for now). Revival trigger (soft): when the current-plan.md/docs refactor is taken up — "review soon."
  • 2026-06-19Permission-posture audit across the whole toolkit. Verify the manually-approve-all-but-narrow-writes/executions intent actually holds everywhere and nothing silently over-grants. Surfaced 2026-06-19 designing skill-wiring, where a proposed allowed-tools: [Bash] would have pre-approved every bash execution (no prompt) — a direct contradiction of the posture. The rule (per the bookmarking precedent): allowed-tools lists the no-prompt pre-approved set; tools omitted still work but prompt each time. Scope: every skill + command frontmatter (allowed-tools / disallowed-tools / disable-model-invocation / user-invocable) across claude-personal + yggdrasil; plus settings.json permissions.allow (the read whitelist, the read-only git allows, the WebFetch domain allowlist) and the registered hooks — confirm each pre-approval is a deliberate narrow exception, not accumulated drift. Worth authoritatively pinning the allowed-tools semantics (claude-code-guide / docs) as part of it. Revival trigger (soft): when there's appetite for a security/hygiene pass — pairs with the de-Windows sweep and the current-plan.md/SYSTEM.md refactor as the toolkit-wide passes.
  • 2026-06-19Disposition convention for spent execution worklists / completed working-docs — and review archive/de-windows-sweep.md specifically. The de-Windows sweep's worklist was parked at archive/de-windows-sweep.md on completion (2026-06-19), but archive/ is otherwise an append-only sink for the accumulating lists (one file per list kind, per its README) — a one-off spent working-doc doesn't fit that model, and the archive README index was deliberately not updated, so the file currently sits there outside the documented convention. Settle the proper home (does archive/ also hold spent worklists/design docs under a new section? a separate settled-docs archive? delete-and-rely-on-git-history?) as part of the current-plan.md/docs refactor, then either index or relocate that file accordingly. Pairs with the existing design-doc-archive TODO (move the planning-skill consolidated design + siblings once Yggdrasil is feature-complete) and the SYSTEM.md effort. Revival trigger (soft): when the current-plan.md/docs refactor is taken up.
  • 2026-06-19Review the session-worktree process now that the work isn't a fleet of autonomous agents. The session-* worktree lifecycle (/good-morning create/resume, /save-progress merge/keep/discard) was inherited from superpowers, where it existed to isolate many parallel autonomous agents on one repo. Brad's actual usage is mostly single, human-in-the-loop sessions (often one repo, edited directly), so an always-on per-session worktree may be more ceremony than benefit. Concrete friction this session (Kingdom.md native standup): native serving requires editing the served main checkout directly — a config/kingdom.php change inside a worktree wouldn't take effect — and juggling worktrees across kingdom.md + two concurrent yggdrasil sessions added overhead without the autonomy payoff the model was built for. To revisit: when is a worktree genuinely worth it (true parallel sessions, risky multi-step builds) vs. just working on main or a plain branch? Should the bookends offer a worktree rather than always create one? A real re-think of an inherited assumption, not a tweak. Cross-refs the 2026-05-28/29 parallel-execution & concurrent-sessions cluster (and the worktree-best-practice notes there). Surfaced 2026-06-19 standing Kingdom.md up natively, while collapsing the kingdom.md worktree back to main. Brad's lean (2026-06-20): as an interim direction, bias the bookends toward cleaning up (disposing) session worktrees on /save-progress when possible — keep should be the exception, not the default — pending this fuller re-think.