Software Developer · L1110 · 2026-07-15
Quest-perfection walkthrough of the Architecture & Design Patterns slice developer/1110 on 2026-07-15, engine verdict warn. An evidence-based…
Table of Contents
- 🎯 Session Summary
- 🗺️ The Journey
- 🔬 Evidence
- 1. 404 Hunting — ❌ 45 · ran 12/4 runnable (9 passed · 3 failed · 2 skipped · 2 reasoned)
- 2. Software Design Patterns — ✅ 97 · ran 7/8 runnable (7 passed · 0 failed · 1 skipped · 3 reasoned)
- 3. Domain-Driven Design — ⚠️ 79 · ran 5/8 runnable (5 passed · 0 failed · 2 skipped · 2 reasoned)
- 4. The Chronicle — ⚠️ 72 · ran 8/6 runnable (7 passed · 1 failed · 1 skipped · 0 reasoned)
- 5. Microservices Architecture — ✅ 84 · ran 5/6 runnable (5 passed · 0 failed · 3 skipped · 1 reasoned)
- 🐞 Issues Found
- 🔗 Chain Continuity
- 🧠 Reasoning & Method
Slice
developer/1110· Level 1110 (Architecture & Design Patterns) · Master tier · Engine verdict ⚠️ warn · Walked 2026-07-15🔗 Perfection run · 🏠 Perfection dashboard · 📄 Raw report · 🕘 Change history
🎯 Session Summary
I walked the first window (5 of 10 quests) of the Developer path’s Master-tier
level 1110 — Architecture & Design Patterns as a learner, driving the sealed
execute-engine evidence (walk-evidence.json) and reading each quest’s source in
plan order to reason about the linked journey. Verdict: warn — the slice is
mostly strong (avg 75.4%, 2 pass / 2 warn / 1 fail), but it contains one
blocking failure, 404 Hunting (45%), whose two flagship deliverables (the
404.html page and the CI link-checker workflows) are broken exactly as printed, so a
learner following it literally ends up with the opposite of what it promises.
The important nuance a per-quest score misses: this slice is not one journey — it
is three parallel tracks that happen to share level 1110. The real linked chain is
the Architect’s Citadel triad (design-patterns → domain-driven-design →
microservices-architecture), whose prerequisites are cleanly satisfied within the
window and which reads as a coherent progression. 404 Hunting (Site Reliability
track) and The Chronicle (Self-Operating Website campaign, Chapter 9) are
standalone quests from unrelated series. Maintainer action: prioritize the four
high fixes on 404 Hunting before this level is presented as complete.
🗺️ The Journey
Plan order (as selected by walk-plan.json; the Architect’s-Citadel triad is
dependency-sorted, the other two are independent tracks at the same level):
- ❌ 404 Hunting: Binary Wards for Unbreakable Links —
45· 🟡 Medium · Core Jekyll concepts are accurate, but the 404 page + both CI workflows are broken as written (leftover{% raw %}artifacts, removed Bundler--path, dead html-proofer flags). - ✅ Software Design Patterns: Gang of Four and Modern Patterns —
97· 🔴 Hard · Every runnable snippet (Factory/Strategy/Observer/Adapter/Decorator + setup paths) executed exactly as documented; the entry point of the architecture arc. - ⚠️ Domain-Driven Design: Modeling the Business in Code —
79· 🔴 Hard · All DDD Python snippets sound and correct; weakness is completeness — “Domain Events” is a stated Secondary Objective that is never taught. - ⚠️ The Chronicle: A SessionEnd Hook That Remembers —
72· 🔴 Hard · Golden path (hook → queue → drain → ledger) verified end-to-end; the Ruby “curse” snippet won’t run on any modern Ruby (3.1+) as printed, plus an empty-stdin edge case. - ✅ Microservices Architecture: Decomposing the Monolith —
84· ⚔️ Epic · Every standalone snippet ran; weakness is the Novice-Challenge lab is unbuildable from the content (no Dockerfiles, no Inventory service, no server entrypoint).
🔬 Evidence
All statuses below come from commands the execute engine actually ran in the
disposable sandbox on 2026-07-15 (mode: execute, mock: false), transcribed from
walk-evidence.json. Items marked reasoned were judged statically (OS-specific or
un-renderable in the headless sandbox), never claimed as run.
1. 404 Hunting — ❌ 45 · ran 12/4 runnable (9 passed · 3 failed · 2 skipped · 2 reasoned)
Per-dimension: commands_work 1, content_accuracy 2, completeness 3, clarity 2, structure 4, safety 5.
- PASSED —
_config.ymlpretty permalinks +jekyll-sitemap/jekyll-feed/jekyll-redirect-from: merged into a freshjekyll newsite,bundle install+bundle exec jekyll buildsucceeded (exit 0), sitemap.xml/feed.xml generated. - PASSED —
redirect_from/redirect_tofront matter: build generated the legacy paths with correct meta-refresh + canonical redirects. - PASSED — collections (
/resources/:path/),_data/quests.yml+ Liquidslugifyloop: all rendered as documented (<a href="/quests/404-hunting">404 Hunting</a>). - FAILED —
404.htmlsnippet: copied verbatim, each Liquid expression is individually wrapped in{% raw %}...{% endraw %}, so Jekyll does not evaluate them. Built output literally contains<a href="{{ site.baseurl }}">and an unrendered{% for post in site.posts limit:5 %}. html-proofer against the built site flagged all three as broken internal links. - FAILED — Lychee workflow
GITHUB_TOKEN: ${% raw %}{{ secrets.GITHUB_TOKEN }}{% endraw %}: the leftover raw-tag markup is a literal string, not valid Actions expression syntax — the secret is never referenced. - FAILED — HTMLProofer workflow:
bundle install --path vendor/bundlefails on current Bundler (“The –path flag has been removed”, exit 15); and the html-proofer CLI flags--typhoeus-config,--url-ignore,--http-status-ignoreall raiseinvalid optionon html-proofer 5.x (freshgem install). Reproduced directly. - SKIPPED/REASONED — macOS/Homebrew path (no brew), Linux
sudo apt-get(no sudo; verified via equivalentbundle install/jekyll build), Mermaid diagram (headless Chromium “No usable sandbox!”; syntax reviewed OK).
2. Software Design Patterns — ✅ 97 · ran 7/8 runnable (7 passed · 0 failed · 1 skipped · 3 reasoned)
Per-dimension: commands_work 5, content_accuracy 5, completeness 4, clarity 5, structure 5, safety 5.
- PASSED — Factory Method:
notifier_factory('email').send('Quest accepted')printedEMAIL: Quest accepted; unknown-channel branch raisedValueError: Unknown channel: unknownas the text claims. - PASSED — Strategy printed
80.0(matching inline# 80.0); Observer printed both subscriber lines in order; Adapter+Decorator printed[legacy] hellothen[legacy] 2026-07-15 decorated. - PASSED — Linux venv path → Python 3.12.13 (satisfies “3.10+”);
docker run --rm python:3.12-slim python --versionpulled/ran → 3.12.13. - REASONED — macOS
brew/Windowswingetsetup (no such tooling on Linux host; syntax correct); Mermaidgraph TB(valid). - SKIPPED — Linux
sudo apt install(no sudo; python3/venv already present).
3. Domain-Driven Design — ⚠️ 79 · ran 5/8 runnable (5 passed · 0 failed · 2 skipped · 2 reasoned)
Per-dimension: commands_work 4, content_accuracy 4, completeness 3, clarity 4, structure 4, safety 5.
- PASSED — Money frozen dataclass + Customer:
Money(500,'USD') + Money(250,'USD')summed correctly. Note: real repr isMoney(amount=750, currency='USD'), but the inline comment says# Money(750, "USD")— a cosmetic mismatch. - PASSED — Order aggregate
add_line()invariant: correctly rejected a 51st line andadd_line('SKU2', -1)raisedValueError('Quantity must be positive'). - PASSED —
OrderRepository(ABC): direct instantiation raisedTypeErrorfor unimplemented abstract methods. - REASONED — Chapter 1
order.confirm()/order.ship()vocabulary block: run literally raisesNameError: name 'order' is not defined— illustrative pseudocode, not a runnable demo; Mermaid bounded-context diagram (valid syntax, Chromium couldn’t launch). - SKIPPED — macOS/Windows setup blocks.
4. The Chronicle — ⚠️ 72 · ran 8/6 runnable (7 passed · 1 failed · 1 skipped · 0 reasoned)
Per-dimension: commands_work 3, content_accuracy 3, completeness 4, clarity 4, structure 5, safety 5.
- PASSED —
.claude/settings.jsonhook config parses;chronicle.shwith a well-formed payload wrote{"ts":"2026-07-15T11:48:04Z","session_id":"test-123","cost_usd":0.42}to.chronicle/queue.jsonl, matching the shown output;echo '{}'correctly defaulted tocost_usd:0. - PASSED —
drain.pyran twice across 3 sessions, rebuiltledger.ymlheader-first, recovered prior rows, truncated queue only after a successful write; resolves paths relative to its own dir (ran from/tmp, wrote to sandbox.chronicle/). - PASSED — ruamel.yaml comment-preserving append: the 2-line
# DO NOT EDIT BY HANDheader survived byte-for-byte (diff + md5sum). Mastery one-liner printed3.57(0.42+1.15+2.00). - FAILED — Ruby “THE CURSE” snippet on Ruby 3.2.3:
NoMethodErroronTime#iso8601(missingrequire 'time'); after fixing,Psych::DisallowedClass: Tried to load unspecified class: Timebecause Psych 4’s safe-load-by-default (standard since Ruby 3.1) rejects the ledger’s own bare ISO8601 timestamps. Once patched, the underlying “header gets dropped” lesson is verified true. - Edge-case finding — piping truly empty stdin (
: | chronicle.sh) wrote a malformed line{"...","cost_usd":}that would crashjson.loadsin the drainer (no per-line error handling), contradicting the hook’s “always append something true, never block” claim. - SKIPPED — Quest-network Mermaid diagram (Puppeteer “No usable sandbox!”; syntax valid).
5. Microservices Architecture — ✅ 84 · ran 5/6 runnable (5 passed · 0 failed · 3 skipped · 1 reasoned)
Per-dimension: commands_work 4, content_accuracy 5, completeness 3, clarity 4, structure 4, safety 5.
- PASSED —
docker-compose.ymlvalid YAML and resolves viadocker compose config;docker compose version→ v2.38.2;docker --version→ 28.0.4. - PASSED —
orders/app.py reserve_stock('SKU123', 5)against an unreachableINVENTORY_URLcaughthttpx.RequestErrorand returnedFalse(“fail clearly, do not hang the user”). Caveat: required installinghttpx, which the quest never lists as a dependency. - PASSED —
CircuitBreaker(threshold=3): first 3 calls raised the underlyingValueErrorand incrementedfailures; the 4th failed fast withRuntimeError('circuit open; skipping call'). Mermaid diagram rendered without errors. - REASONED — saga orchestration pseudocode (accurate against the canonical pattern).
- SKIPPED — macOS/Windows/Linux
sudosetup blocks (no brew/winget/sudo). - Critical gap (observed via commands_work findings): the Novice Challenge says “Run the Orders and Inventory services with Docker Compose,” but no Dockerfile, no Inventory
/reserveimplementation, and no HTTP server wrapper aroundreserve_stockare provided —docker compose upis not achievable from the quest’s own content.
🐞 Issues Found
High
- 404 Hunting ·
404.htmlsnippet (Chapter 1) · observed: per-expression{% raw %}...{% endraw %}wrapping ships into the copyable block, so the built page contains literal{{ site.baseurl }}and an unrendered post loop (html-proofer flagged all 3). Fix: strip the per-expression raw wrappers; if the quest’s own render pipeline needs escaping, wrap the whole fence in one raw block so the learner copies plain Liquid. - 404 Hunting · Lychee workflow (Chapter 3) · observed:
GITHUB_TOKEN: ${% raw %}{{ secrets.GITHUB_TOKEN }}{% endraw %}is a literal string, not valid Actions syntax; token auth silently never wires up. Fix:GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}. - 404 Hunting · HTMLProofer workflow (Chapter 3) · observed:
bundle install --path vendor/bundlefails on current Bundler (exit 15). Fix:bundle config set --local path vendor/bundle && bundle install, or rely onbundler-cache: truefromruby/setup-ruby. - 404 Hunting · HTMLProofer CLI flags (Chapter 3) · observed:
--typhoeus-config,--url-ignore,--http-status-ignoreall raiseinvalid optionon html-proofer 5.x. Fix:--typhoeus '{"timeout":20}',--ignore-urls,--ignore-status-codes; pin the gem version so flags stay valid. - Domain-Driven Design · Completeness / chapter coverage · observed (source read, line 23 vs. body): “Domain Events” is listed as a Secondary Objective and referenced in the completion checklist but is never explained or demonstrated anywhere in the body. Fix: add a short subsection + one example (e.g. an
OrderConfirmedevent dataclass). - The Chronicle · Chapter 2 Ruby “THE CURSE” snippet · observed: fails twice on Ruby 3.2.3 (missing
require 'time'; thenPsych::DisallowedClasson Time). Fix: addrequire 'time'andYAML.load_file(path, permitted_classes: [Time])(or noteYAML.unsafe_load) so the comment-loss lesson is reachable. - Microservices · Novice-Challenge two-service lab · observed: the challenge requires
docker compose up, but no Dockerfile, no Inventory service, and no server entrypoint for Orders exist in the quest. Fix: supply (or link a companion repo with) minimal Dockerfiles, an Inventory/reserveservice, and a FastAPI/Flask wrapper aroundreserve_stock.
Medium
- 404 Hunting · Mastery indicator “spot a redirect loop” · observed: referenced twice but never demonstrated. Fix: add a concrete before/after redirect-loop example.
- The Chronicle ·
chronicle.shrobustness · observed: truly empty stdin writes malformed JSON ("cost_usd":}) that crashes the drainer’sjson.loads, contradicting “always append something true.” Fix: validate the payload (jq -e . >/dev/null 2>&1 || payload='{}') or scope the claim to well-formed JSON. - Microservices ·
docker-compose.ymlcomment · observed:# internal only — reached via the gateway laterreferences an API gateway never built in this quest. Fix: remove the comment or note it points to the follow-up “API Gateway Patterns” quest.
Low
- 404 Hunting · Secondary objective “centralize redirects with a small data map” is named but not shown (only per-page
redirect_from/redirect_to). Add a_data/redirects.yml+ Liquid example. - Design Patterns · Adapter/Decorator
Printeris a no-op stub, not anABCwith@abstractmethod, inconsistent with theNotifier/PricingStrategyexamples earlier. Also add reference solutions/rubric for the mastery challenges and a code example for the passing-mention secondary objectives (composition-over-inheritance, anti-patterns). - Domain-Driven Design · Money snippet comment
# Money(750, "USD")doesn’t match the real reprMoney(amount=750, currency='USD'); note the Chapter 1order.*block is illustrative pseudocode (undefinedorder); optionally add an in-memoryOrderRepositoryimplementation. - The Chronicle · “prove the hook works” section should note the manual pipe must run from project root (or with
CLAUDE_PROJECT_DIRexported), else the queue lands outside.chronicle/. Also flag the snippet frontmatter tag mismatch —tags:listsbonus_questwhilequest_type: main_quest(observed on source read, lines 13/30). - Microservices ·
orders/app.pyuseshttpxwith nopip install httpxnote; the “fallacies of distributed computing” objective is only linked out, never enumerated inline.
No safety issues in any quest — every setup command is a standard, non-destructive package install; the one dangerous pattern (to_yaml clobbering a header) is explicitly framed as a “curse.”
🔗 Chain Continuity
This level is three parallel tracks, not one chain — reading the frontmatter makes that explicit. A learner should not expect a single narrative:
- Architect’s Citadel triad (the real linked journey):
design-patterns(required_quests: [], unlocks DDD + microservices) →domain-driven-design(required_quests: [design-patterns]) →microservices-architecture(required_quests: [design-patterns],recommended_quests: [domain-driven-design]). Prerequisites are cleanly satisfied inside this window and the plan order respects the dependency graph. Conceptual continuity is genuinely good: Design Patterns establishes ABCs/interfaces and composition, which DDD reuses verbatim (frozen dataclasses,OrderRepository(ABC)), and DDD’s bounded contexts are exactly the seam Microservices decomposes along (“draw service boundaries along bounded contexts”). A learner finishing quest 2 is genuinely ready for 3 and 5. - Forward-continuity gap: DDD’s never-taught Domain Events is a real seam
loss — both DDD and Microservices list
event-driven-designas an unlock, and Domain Events is the natural bridge to it. The gap is inside this window (DDD) but bites in the next window, so it’s worth fixing before the event-driven quest is presented. 404 Huntingis an orphan in this theme. It belongs to the “Site Reliability for Static Sites” series, uses a bareprerequisites:list (noquest_dependenciesgraph), and shares nothing with the architecture triad. It sits at 1110 by difficulty, not by storyline. That’s fine structurally, but a learner arriving from Design Patterns would find the Jekyll/CI subject a hard context switch — and it’s the one quest that fails.The Chronicleis Chapter 9 of a different campaign (“The Self-Operating Website”). Its stated prerequisite is “Completed Chapter VIII — The Cartographer” (level 0101), which is not in this slice or even this level. A learner walking only 1110 lands mid-campaign with unmet narrative prerequisites — though the quest is self-contained enough that the golden path still verified end-to-end. This is a planner/curriculum-shape observation, not a defect in the quest itself.
Net: the dependency-declared chain is sound and its prerequisites hold within the
window; the discontinuity is that “level 1110” bundles three unrelated series, so
“walk the level” ≠ “walk one journey.” The maintainer-facing risk is entirely the
404 Hunting failure, not the ordering.
🧠 Reasoning & Method
- Mode:
execute— real commands run by the agentic engine in a disposable sandbox (Linux, Python 3.12.13, Docker 28.0.4 / Compose v2.38.2, Ruby 3.2.3). The evidence (walk-evidence.json/walk-evidence.md) was pre-computed and sealed by the workflow; per the skill’s step 2 I consumed it as-is and did not re-run, regenerate, or edit it (the engine’s childclaudeprocesses can’t authenticate from my Bash tool). Everypassed/failedabove is transcribed from a command the engine actually ran;reasoned/skippeditems are labeled as such. - What I ran vs. reasoned: I ran nothing myself — the sandbox execution was the
sealed engine’s. My contribution (skill step 3) is the linked-journey analysis: I
read all five quest sources in plan order (frontmatter, objectives, prerequisites,
quest_dependencies) and cross-checked continuity, prerequisite satisfaction, and where a real Developer-path learner would get stuck. The frontmatter/objective observations in Issues (DDD “Domain Events” at line 23, Chronicle tag/quest_typemismatch, 404’s bare prerequisites) come from that source read and are marked as observed-in-source, not command-run. - Coverage limits, stated honestly: (1) This is window 1 of 2 — 5 of the
level’s 10 quests; the other 5 were not walked this run and the ledger accumulates
coverage across runs. (2) OS-specific setup (macOS
brew, Windowswinget, Linuxsudo apt) could not run on the Linux host and isreasoned/skipped, not verified. (3) Every Mermaid diagram except the Microservices one failed to render (“No usable sandbox!” — a Puppeteer/Chromium limitation, not a quest defect) and was syntax-reviewed only. (4) 404 Hunting’sjekyll servewas proxied byjekyll build. - Confidence: High on the five quest-level verdicts (each command failure was
reproduced with concrete output and each is internally consistent with the
dimension scores and the fixed weights in
schema.py). High on the chain analysis, which rests on directly-quoted frontmatter. The one judgment call is the slice-level warn: the 75.4% average sits in the warn band, but I want the maintainer to read this as “one must-fix blocker (404 Hunting) plus polish,” not “level is ready.”
Machine evidence (verbatim, from walk-evidence.md)
5 quests evaluated · ✅ 2 pass · ⚠️ 2 warn · ❌ 1 fail · avg 75.4% · ~$4.214
Score Quest Snippets run ❌ 45 404 Hunting: Binary Wards for Unbreakable Links 12/4 (3✗) ✅ 97 Software Design Patterns: Gang of Four and Modern Patterns 7/8 ⚠️ 79 Domain-Driven Design: Modeling the Business in Code 5/8 ⚠️ 72 The Chronicle: A SessionEnd Hook That Remembers 8/6 (1✗) ✅ 84 Microservices Architecture: Decomposing the Monolith 5/6