2026 07 16 Security Specialist 1011¶
π― Session Summary¶
I walked a 5-quest rotating window (window 1 of 3, quests 1β5 of the 12 in security-specialist / level 1011 β Security & Compliance, Warrior tier π₯) as a learner, in the dependency-sorted order the planner fixed. Evidence comes from the sealed agentic execute engine (commands actually run in a disposable sandbox); I layered the linked-journey reasoning on top by reading each quest source in order.
Headline verdict: β οΈ warn. Two quests are genuinely strong and verified end-to-end (The Sealed Evidence 94, Threat Modeling 91); two are solid-but-flawed with reproducible defects (Failure Recovery 65, Secure Coding 77); one fails (AI Feature Pipeline Architect 59) because only its first chapter is runnable while Chapters 2β5 are unrunnable sketches β and it is still draft: true. The bigger story for a maintainer is continuity: this window is not one learning chain but a bundle of four unrelated quest-lines that merely share the level code, and three of the five assume prerequisite quests/scaffold that live outside the window.
πΊοΈ The Journey¶
| # | Verdict | Quest | Score | One-line takeaway |
|---|---|---|---|---|
| 1 | β οΈ | When Familiars Fall: Multi-Agent Failure Recovery | 65 | Core recovery_coordinator.py verified across 3 scenarios, but a likely GitHub Actions continue-on-error logic bug and 3 missing referenced scripts undercut the objectives. |
| 2 | β | AI Feature Pipeline Architect: DevSecOps Mastery Quest | 59 | Chapter 1 (Intake) works end-to-end; Chapters 2β5 of the promised "5-stage pipeline" are architecture sketches referencing undefined classes. Still draft: true. |
| 3 | β | The Sealed Evidence: Slaying the Self-Grading Golem | 94 | Mintβsealβforgeβrestoreβledger chain reconstructed and executed β every step behaved exactly as documented; both Mermaid diagrams render. |
| 4 | β οΈ | Secure Coding: Preventing the OWASP Top 10 | 77 | Most snippets (bcrypt, bandit, npm/pip-audit, allowlist, subprocess) run as documented; 3 reproducible defects: Docker -it in non-TTY, detect-secrets misses untracked files, SQL %s vs stdlib sqlite3. |
| 5 | β | Threat Modeling: STRIDE Framework and Attack Trees Analysis | 91 | Clean, accurate Hard-level quest; the runnable snippet + Mermaid DFD executed and all 9 external links resolved. Only gap: "Living Threat Models" objective is checklisted, never taught. |
Average 77.2% Β· 2 β / 2 β οΈ / 1 β Β· engine cost β $3.51.
π¬ Evidence¶
All statuses below are from the sealed execute run (walk-evidence.json). Coverage is reported as runnable snippets executed vs. reasoned/skipped; installer blocks for other OSes and network calls to external repos were correctly reasoned/skipped, not run.
1. When Familiars Fall: Multi-Agent Failure Recovery β β οΈ 65¶
Dimensions: commands 3 Β· accuracy 3 Β· completeness 3 Β· clarity 3 Β· structure 4 Β· safety 5. Coverage: 6 blocks β 4 executed (3 passed, 1 failed), 2 reasoned.
- β
python3 work/gh-600/scripts/recovery_coordinator.py β¦ β passed in all three
scenarios: (1) sub-agent-1 failed + checkpoint present β retry_from_checkpoint, needs_redelegation=false; (2) failed + no checkpoint β redelegate, needs_redelegation=true; (3) both agents failed, zero result files β degraded gracefully to task:'unknown' instead of crashing on a missing key.
- β python3 scripts/validate_quest.py --quest q16 β failed: "can't open file β¦
scripts/validate_quest.py: [Errno 2] No such file or directory". The validator the quest tells the learner to run is never provided anywhere in the content.
- π§ (reasoned) The orchestrator-with-recovery.yml block only parses as valid YAML
after stripping literal {% raw %}β¦{% endraw %} tags wrapped around every ${{ }}; the engine flagged that recover-and-report reads needs.sub-agent-1.result while that job sets job-level continue-on-error: true β a documented GHA gotcha where the result reports success downstream, which would silently disable failure detection.
2. AI Feature Pipeline Architect β β 59¶
Dimensions: commands 3 Β· accuracy 3 Β· completeness 2 Β· clarity 3 Β· structure 3 Β· safety 4. Coverage: 14 blocks β 7 executed (6 passed, 1 failed), 3 skipped (other-OS installers), 4 reasoned.
- β
pip install langchain anthropic openai mcp, the devcontainer JSON, the universal
workflow object, the user_story_schema.json, and intake_agent.py imports all passed (compiles, imports cleanly).
- β echo "β¦" | python intake_agent.py β failed without ANTHROPIC_API_KEY
(unhandled KeyError: 'ANTHROPIC_API_KEY', matching the quest's own warning). Re-run with a fake key reached the real Anthropic API β anthropic.AuthenticationError: 401 - invalid x-api-key, confirming Chapter 1 wiring is real.
- π§ (reasoned) ImplementationOrchestrator, DocumentationAgent, TestingOrchestrator,
DeploymentOrchestrator (Chapters 2β5) reference agent classes that are never defined and carry no save/run instructions β unrunnable as written.
3. The Sealed Evidence: Slaying the Self-Grading Golem β β 94¶
Dimensions: commands 5 Β· accuracy 5 Β· completeness 4 Β· clarity 4 Β· structure 5 Β· safety 5. Coverage: 11 blocks β 9 executed, all passed; 1 reasoned, 1 skipped (external gh api).
- β
The full mint β seal β forge β restore β ledger chain was reconstructed and run:
the mint step wrote evidence.txt, seal copied it to $RUNNER_TEMP/sealed, the boss-fight forgery edited evidence.txt to fake success, the restore step's cmp -s caught the tamper and restored the sealed copy, and the ledger grep FAIL parse then reflected the true result β every step behaved exactly as documented.
- β
Both Mermaid diagrams (architecture graph TD, quest-network graph LR) rendered
without syntax errors.
- βοΈ gh api repos/bamr87/it-journey/pulls/433 skipped (external repo, not reproducible
standalone) β the one completeness gap for an isolated learner.
4. Secure Coding: Preventing the OWASP Top 10 β β οΈ 77¶
Dimensions: commands 3 Β· accuracy 4 Β· completeness 4 Β· clarity 4 Β· structure 5 Β· safety 5. Coverage: 14 blocks β 9 executed (8 passed, 1 failed), 5 reasoned (incl. 3 other-OS installers).
- β
Passed as documented: bcrypt (gensalt(rounds=12) / checkpw), the parameterized-vs-
concat SQL contrast, subprocess.run list-form vs shell=True, the allowlist re.fullmatch(r"[A-Z]{2}\d{6}", β¦), os.environ["API_KEY"], detect-secrets scan, pip-audit / npm audit / npm audit fix, and bandit -r ./src.
- β docker run --rm -it python:3.12-slim bash -lc "β¦" β failed: "the input device
is not a TTY". Re-running with -it removed succeeded and printed Python 3.12.13.
- π§ (reasoned) detect-secrets scan without --all-files only scans git-tracked files,
so a freshly-created secret file the section is trying to catch produces a false all-clear; the SQL %s placeholder does not work with Python's stdlib sqlite3 (qmark ? style), so a learner testing it with the built-in module hits a syntax error.
5. Threat Modeling: STRIDE Framework and Attack Trees β β 91¶
Dimensions: commands 4 Β· accuracy 5 Β· completeness 4 Β· clarity 5 Β· structure 5 Β· safety 5. Coverage: 8 blocks β 2 executed passed, 3 skipped (other-OS installers), 3 reasoned. - β The cloud-path echo snippet and the Chapter 1 Mermaid DFD (User β Web App β DB / Payment Provider with trust boundaries) executed/rendered successfully; all nine external resource links resolved live. - π§ (reasoned) STRIDE walk-through, attack tree, and DREAD/priority table are prose/table teaching blocks (nothing to execute) and are internally consistent.
π Issues Found¶
Grouped by quest, severity from the sealed engine's own recommendations, each tied to a witnessed command result or a quoted source concern. These are for a content pass β no fixes were made here.
When Familiars Fall (β οΈ 65)
- high Β· Ch. 2 recover-and-report job β needs.sub-agent-1.result is read while
that job uses job-level continue-on-error: true; the known GHA behavior reports success downstream, silently defeating the "failure detection" objective. Fix: thread the custom needs.sub-agent-1.outputs.status (as sub-agent-2 already does) and align recovery_coordinator.py's check (failed vs failure). (reasoned)
- high Β· Missing scripts β subtask.py, save_checkpoint.py, redelegate_tasks.py
are referenced for the "retry/backoff" and "re-delegation" objectives but never shown. Fix: provide them or scope the quest to assessment/compensation only. (reasoned)
- medium Β· Quest Validation β scripts/validate_quest.py does not exist; the final
step fails outright (tested). Fix: ship the script or use a manual checklist.
- medium Β· YAML block leaks literal {% raw %}/{% endraw %} into the fenced code β
a learner copying from the raw .md gets invalid YAML (tested: only parses after stripping). Fix: pre-render or escape differently.
- low Β· Add a "before you begin" note stating the assumed work/gh-600/scripts/
scaffold state from the prior quest. (reasoned)
AI Feature Pipeline Architect (β 59)
- high Β· Chapters 2β5 reference undefined agent classes with no save/run steps β the
"5-stage pipeline" objective is not demonstrable. Fix: label as pseudocode or flesh out to Chapter-1 rigor. (reasoned)
- high Β· MCP is a Primary Objective but self.mcp_session stays None; add a minimal
working transport/session example. (reasoned)
- medium Β· model="claude-3-5-sonnet-latest" is stale β update to a current alias.
- medium Β· intake_agent.py raises a raw KeyError on a missing ANTHROPIC_API_KEY
(tested) β wrap with a friendly check.
- medium Β· macOS block: brew install docker installs only the CLI, not the daemon
the stated requirement needs; add brew install --cask docker. (reasoned)
- low Β· Validation is self-assessed checkboxes only; add checkable success criteria.
- low Β· "Architectural Decision Records" artifact required but no ADR template shown.
- process Β· The quest is draft: true β either it should not appear in the learner
path yet, or it needs to graduate; shipping a fail-scoring draft in the sweep is a mixed signal.
The Sealed Evidence (β
94)
- medium Β· Mastery Challenge points at an external repo's workflow file with no inline
starting artifact β a learner outside bamr87/it-journey has nothing to extend. (reasoned)
- low Β· PR #433 reference is unverifiable offline (skipped) β add a short inline diff.
- low Β· Note that uses: ./.github/actions/claude-run and .claude/agents/potion-scribe.md
are repo-specific so learners know which parts to swap. (reasoned)
Secure Coding (β οΈ 77)
- high Β· Cloud Realms Docker snippet uses -it and fails with "input device is not
a TTY" non-interactively (tested; works with -it removed). Fix: drop -it or use -i.
- medium Β· detect-secrets scan without --all-files misses untracked files β
undermines the very "never commit secrets" scenario. Fix: recommend --all-files. (reasoned)
- medium Β· SQL %s placeholder fails with stdlib sqlite3 β specify a driver or use ?. (reasoned)
- low Β· Two @app.get("/invoices/<invoice_id>") blocks would raise a Flask duplicate-
endpoint error if pasted together β rename the secure version. (reasoned)
- low Β· XSS snippet is browser-only (Node has no DOM) β note it or add a jsdom variant. (reasoned)
Threat Modeling (β
91)
- low Β· "Living Threat Models" secondary objective is checklisted but never taught β
add a short callout on revisiting the model as the design changes. (reasoned)
- low Β· Author double-check the Microsoft.ThreatModelingTool winget id still resolves
(couldn't re-verify live from the sandbox). (reasoned)
No blocking issues exist for the two β quests beyond the standalone-reproducibility notes above; they are safe and accurate for a learner.
π Chain Continuity¶
Read in plan order, this window does not behave like one linear learning chain β it is a date-rotated window (1 of 3) over the 12 quests that share level code 1011, and those 12 span four unrelated quest-lines:
- Failure Recovery β
quest_series: agentic-ai-mastery/quest_line: gh-600 - AI Feature Pipeline Architect β
AI-Enhanced Development Mastery Path - Sealed Evidence β
The Autonomous Realm/The Ouroboros Loop - Secure Coding & Threat Modeling β
Security Mastery/The Warrior's Bastion
Within-window continuity that holds (good): Secure Coding (#4) declares unlocks_quests: /quests/1011/threat-modeling/ and Threat Modeling (#5) recommends /quests/1011/secure-coding/. This adjacent pair is a real, coherent sub-chain β a learner finishing Secure Coding is genuinely ready for Threat Modeling, and both only require the same out-of-window security-fundamentals.
Prerequisite gaps (three of five reach outside the window):
- Failure Recovery (#1) requires /quests/1011/agentic-multi-agent-observability/
(Q15, not in this window) and assumes a work/gh-600/scripts/ scaffold already exists from a prior quest β a learner starting cold here has no scaffold and the final validation step fails.
- AI Feature Pipeline Architect (#2) lists prereq "Completion of Level 1001 (Backend)"
and is draft: true β a learner browsing the published curriculum wouldn't normally reach it, and if they did, Chapters 2β5 dead-end.
- Sealed Evidence (#3) recommends /quests/0011/ouroboros-loop-03-summon-the-golem/
and assumes a working "scribe golem" repo + a Claude Code OAuth token; it's excellent in isolation but its Mastery Challenge/PR reference need the external it-journey repo.
Ordering observation: the planner's dependency sort is fine mechanically, but the learner-facing takeaway is that "level 1011 for security-specialist" is a thematic bucket, not a single path. The Security Mastery pair is the true spine for this character; the agentic/pipeline/ouroboros quests are cross-listed at the same tier and each belong to their own campaign. A maintainer deciding "is 1011 perfect for security-specialist" should weight the Security Mastery line most heavily β and there the news is good (Secure Coding 77 with fixable defects, Threat Modeling 91).
π§ Reasoning & Method¶
- Mode:
execute(sandboxed). I did not run the engine β per the skill and the workflow design,walk-evidence.json/walk-evidence.mdwere pre-computed and sealed by a deterministic workflow step (the engine's childclaudeprocesses can't authenticate from an agent's Bash tool). I consumed them read-only and made no edits to the plan or evidence. - What I ran vs. reasoned: every
passed/failedabove is a command the sealed engine actually executed in a disposable temp dir (quoted outputs are its real results). Items marked (reasoned) were judged statically β by me from the quest source, or by the engine where a block was prose, an other-OS installer, or an external network call it correctly declined to run. I ran zero commands myself; my contribution is the linked-journey reasoning (reading all five sources in plan order). - Coverage / limits: this is window 1 of 3 β 5 of the 12 quests in the level. The perfection ledger accumulates the other two windows over subsequent runs; this report does not certify the whole level. Snippet coverage varied (2/8 executed on the conceptual Threat Modeling quest up to 9/11 on Sealed Evidence); other-OS installers and external-repo/network calls were skipped by design, not overlooked. No timeout occurred (engine ran to completion, β$3.51).
- Confidence: high on the two β
quests and on the tested defects (Docker
-it, missingvalidate_quest.py,intake_agent.pyKeyError β all reproduced live). Medium on thecontinue-on-errorGHA bug and the "missing scripts" scope gaps, which were reasoned/statically flagged rather than executed end-to-end in a real multi-job run. - Scope discipline: one slice, one report. No quest content, data, or config was modified; no branch/commit/PR was made. The caller handles git.