Data Scientist · L1100 · 2026-07-20
Quest-perfection walkthrough of the Data Engineering slice data-scientist/1100 on 2026-07-20, engine verdict fail (avg 64.0%). An evidence-based…
Table of Contents
- 🎯 Session Summary
- 🗺️ The Journey
- 🔬 Evidence
- 1. The Warden’s Pact — 34% ❌ · ran 4 extracted commands, 0 passed / 4 failed, 3 reasoned (1 of 7 snippets literally runnable)
- 2. The Grand Capstone — 85% ✅ · ran 5, 5 passed / 0 failed, 4 reasoned (1 of 9 snippets runnable)
- 3. Apache Spark Mastery — 95% ✅ · ran 7, 7 passed / 0 failed, 1 skipped, 4 reasoned (10 of 12 runnable)
- 4. Stream Processing — 56% ❌ · ran 6, 3 passed / 3 failed, 2 skipped, 3 reasoned (7 of 11 runnable)
- 5. Data Quality Engineering — 50% ❌ · ran 8, 5 passed / 3 failed, 1 skipped, 0 reasoned (9 of 9 runnable)
- 🐞 Issues Found
- 🔗 Chain Continuity
- 🧠 Reasoning & Method
Slice
data-scientist/1100· Level 1100 (Data Engineering) · Master tier · Engine verdict ❌ fail (avg 64.0%) · Walked 2026-07-20🔗 Perfection run · 🏠 Perfection dashboard · 📄 Raw report · 🕘 Change history
🎯 Session Summary
I walked a 5-quest window (window 2 of 3) of the Data Scientist → Level 1100 slice as a learner would, consuming the sealed execute-engine evidence and reading every quest source in plan order. The window is not one learning path — it splices two unrelated tracks that happen to share the 1100 level code: the GH-600 “Agentic Codex” arc (Warden’s Pact → Grand Capstone) and the Data Engineering Mastery arc (Apache Spark → Stream Processing → Data Quality). A data-scientist reading top-to-bottom would whiplash between GitHub governance and PySpark.
Headline verdict: FAIL for the slice. Three of five quests fail with high-severity, copy-paste-breaking bugs verified by real command execution: the Warden’s Pact ships three GitHub Actions workflows with literal {% raw %}/{% endraw %} tags inside ${{ }} expressions (every run: step throws bad substitution), Stream Processing pins a Kafka image (bitnami/kafka:3.7) that no longer exists on Docker Hub so no learner can start Chapter 2, and Data Quality never provides the orders.csv that all four of its snippets read (plus a Great Expectations example broken against the 1.x API pip now installs). The two passing quests are genuinely strong: Apache Spark (95%) ran all 7 executed snippets cleanly, and the Grand Capstone (85%) validator behaved exactly as documented in both failing and passing states. The most actionable maintainer takeaway: the correct fix for the Warden’s Pact templating bug already exists one quest away — the Capstone escapes the identical Liquid mechanism correctly.
🗺️ The Journey
| # | Verdict | Quest | Score | One-line takeaway |
|---|---|---|---|---|
| 1 | ❌ fail | The Warden’s Pact: Guardrails & Human-in-the-Loop | 34 | All 3 workflow snippets die on bad substitution; CODEOWNERS ordering defeats its own guardrail; validator script doesn’t exist. |
| 2 | ✅ pass | Trial of the Agentic Codex: The Grand Capstone | 85 | Sole runnable snippet (validate-capstone.sh) ran true in both fail & pass states; ~2/3 of sub-challenges are “refer to Q_” stubs. |
| 3 | ✅ pass | Apache Spark Mastery: Big Data with PySpark | 95 | Every executed snippet worked and matched the prose; only the stale “JDK 11/17” prereq is inaccurate for pip’s pyspark 4.x. |
| 4 | ❌ fail | Stream Processing: Real-Time with Kafka & Flink | 56 | Strong concepts and working Python, but the first infra step (docker compose up) fails — image tag is gone from Docker Hub. |
| 5 | ❌ fail | Data Quality Engineering: Validation & Monitoring | 50 | Dependency-free validator & anomaly check work; but no orders.csv is ever provided and the GX/pandera examples fail as written. |
🔬 Evidence
All outcomes below are from the sealed execute-engine pass (walk-evidence.json, mock:false, mode:execute) — commands actually run in a disposable sandbox. I did not re-run the engine (its child processes cannot authenticate from an agent Bash tool); I reasoned over the chain against the quest sources.
1. The Warden’s Pact — 34% ❌ · ran 4 extracted commands, 0 passed / 4 failed, 3 reasoned (1 of 7 snippets literally runnable)
- The only literally-runnable command,
python3 scripts/validate_quest.py --quest q19, failed:can't open file '.../scripts/validate_quest.py': [Errno 2] No such file or directory— the script is never provided or linked. - The engine extracted each
run:step from the three workflow YAML blocks and executed them underbash -eo pipefail(Actions’ real default). Every step containing${% raw %}{{ ... }}{% endraw %}failed withbad substitution, exit 1 — reproduced individually for Ch.2 (gh pr view "${% raw %}{{ github.event.pull_request.number }}{% endraw %}"), Ch.3 (echo "Deploying plan: ${% raw %}{{ needs.prepare.outputs.deploy_plan }}{% endraw %}"), and Ch.4 (the audit-log heredoc). Confirmed against source lines 155, 238, and 275–280. - CODEOWNERS ordering bug confirmed by reading source (lines 121–133): the catch-all
* @team-devsits at the bottom, and GitHub CODEOWNERS is last-match-wins, so it silently overrides the@team-securityrules on/src/auth/and/src/crypto/— the inverse of the guardrail’s stated purpose.
2. The Grand Capstone — 85% ✅ · ran 5, 5 passed / 0 failed, 4 reasoned (1 of 9 snippets runnable)
validate-capstone.shwas created from its heredoc,chmod +x‘d, and run verbatim: against an empty repo it printed 14 ❌ lines and exited 1, exactly as the prose predicts (“one that fails a few times first was written honestly”). Re-run after synthesizing all 14 artifacts, it passed — the machine-verifiable contract works in both directions.jq,git,ghall present; the Seal-4jq -e '.criteria | length >= 3'filter worked against a real JSON file. Both YAML blocks parsed cleanly (yamllint: cosmetic line-length only). The two JSON snippets only fail strictjson.loads()because of a leading// pathJSONC comment — cosmetic for illustrative config.
3. Apache Spark Mastery — 95% ✅ · ran 7, 7 passed / 0 failed, 1 skipped, 4 reasoned (10 of 12 runnable)
- Linux setup ran end-to-end;
pip install pysparkpulled pyspark 4.2.0 and printed the version. - Ch.1
spark_intro.py:printSchema()+df.show()produced the exact 3-row table shown. Ch.2 lazy snippet:result.show()→checkout | 105.0andexplain(mode="formatted")contained twoExchangenodes, exactly the shuffle marker the quest tells learners to hunt for. Ch.3groupByKey/reduceByKeyboth returned identical[('b', 6), ('a', 4)];coalesce(1)produced one output file andrepartition(4,…)produced several. Ch.4 SQLexplain("cost")and the cache/unpersist cycle both ran clean. - Only gap: prereq says “JDK 11/17” (line 127), but pip’s pyspark 4.x requires Java 17+ — stale, not blocking.
4. Stream Processing — 56% ❌ · ran 6, 3 passed / 3 failed, 2 skipped, 3 reasoned (7 of 11 runnable)
- The gating infra command failed live:
docker compose up -dagainst the Ch.2 compose file (image: bitnami/kafka:3.7, source line 258) →manifest for bitnami/kafka:3.7 not found: manifest unknown. Verifieddocker pull bitnami/kafka:3.7also fails. This blocks every platform path at the first hands-on step. - After swapping to
bitnamilegacy/kafka:3.7, the broker started in KRaft mode and everything downstream worked with zero further edits — so the compose config itself is correct, only the image reference is stale.producer.pyprintedproduced 5 events; the consumer printedpartition=X offset=Y value=…per message and correctly showed offset tracking on re-run; the Ch.4 exactly-once producer (idempotence + transactions) ran and the message was committed/consumable.
5. Data Quality Engineering — 50% ❌ · ran 8, 5 passed / 3 failed, 1 skipped, 0 reasoned (9 of 9 runnable)
- No
orders.csvis ever provided — all four snippets (profile.py,validate_ge.py,validate_simple.py,contract.py) callpd.read_csv("orders.csv")and fail withFileNotFoundErrorfor a literal learner; the engine had to synthesize a CSV to proceed. - Ch.3 Great Expectations snippet failed:
context.sources.add_pandas(...)→AttributeError: 'EphemeralDataContext' object has no attribute 'sources'on thegreat_expectations 1.19.0thatpip installresolves to (the.sourcesfluent API was removed in the GX 1.0 rewrite). - Ch.4 pandera
contract.pyfailed: withoutparse_dates=["created_at"],Column(pa.DateTime)raisesSchemaErrors … expected datetime64[ns], got str. Adding it (not in the quest) fixes it. - What passed:
validate_simple.pycorrectly passed a clean CSV and flagged duplicate/out-of-range/malformed-email on a corrupted copy;anomaly.pyraisedSystemExitwith a −220.8σ deviation; once patched, panderastrict=True/lazy=Truerejected an extra column and reported all violations at once.
🐞 Issues Found
high · Stream Processing · Ch.2 docker-compose.yml (line 258) · docker compose up -d fails for all platforms with manifest unknown — bitnami/kafka:3.7 is gone from Docker Hub, blocking the entire hands-on quest at step 1 · Fix: repin to a pullable image (apache/kafka:3.9.0, confluentinc/cp-kafka, or bitnamilegacy/kafka:3.7) and re-verify.
high · The Warden’s Pact · Ch.2/3/4 workflow YAML (lines 155, 216, 232, 238, 263, 275–291) · Literal {% raw %}/{% endraw %} tags left inside ${{ }}; every run: step throws bad substitution (exit 1) when executed · Fix: wrap each YAML fence in one {% raw %}…{% endraw %} pair (as the Capstone’s Challenge 1.2 already does, lines 175/217) so the ${{ }} expressions render intact.
high · The Warden’s Pact · Ch.2 CODEOWNERS (lines 121–133) · Catch-all * @team-dev at the bottom wins under last-match-wins, silently defeating the @team-security scope rule — the opposite of the guardrail’s purpose · Fix: move the catch-all to the top of the file.
high · Data Quality · Chapters 2–4 (line 239 et al.) · No orders.csv is ever provided; every snippet fails FileNotFoundError on first run · Fix: ship an inline CSV block or a small generator snippet (clean + corrupted) before Chapter 2.
high · Data Quality · Ch.3 validate_ge.py (lines 270–289) · context.sources.add_pandas(...) throws AttributeError on the GX 1.19 pip installs today · Fix: update to the GX 1.x context.data_sources.add_pandas(...) API, or pin great-expectations<1.0.
medium · Data Quality · Ch.4 contract.py (line 353) · Column(pa.DateTime) fails WRONG_DATATYPE because created_at reads as string · Fix: add parse_dates=["created_at"] to pd.read_csv.
medium · The Warden’s Pact · Quest Validation (line 341) · python3 scripts/validate_quest.py --quest q19 fails — script never provided · Fix: ship the script or replace with a manual self-check checklist.
medium · The Warden’s Pact · Objectives vs. content (lines 89–93) · Objective 5 (“intentionally trigger each guardrail and verify it fires”) and objective 3 (forbidden-action detection) have no delivered exercise — only an AGENTS.md policy list · Fix: add a trigger-and-verify exercise, or reword objective 3 to match the policy-only delivery.
medium · Stream Processing · Ch.3 / Intermediate Challenge (lines 418–426) · The tumbling-window-over-event-time exercise has no reference code anywhere in the quest · Fix: add a minimal windowing example (kafka-python/Faust/PyFlink).
medium · Stream Processing · Title/framing · “& Flink” in the title but Flink is never used (all snippets are kafka-python) · Fix: add minimal Flink content or drop it from the title.
low · Apache Spark · Prereq (line 127) · “JDK 11/17” is stale — pip’s pyspark 4.x needs Java 17+ · Fix: state “JDK 17+” and consider pinning pyspark==4.2.0.
low · Grand Capstone · Completeness (Challenges 1.3, 2.3, 3.2–3.3, 4.2–4.3, 5.1–5.4, 6.1–6.2) · ~2/3 of sub-challenges are “Refer to Q_” stubs with no inline artifact/filename hint; the Domain Coverage Rubric (/18, /19…) is never tied to the validator’s pass/fail · Fix: add a one-line expected-artifact note per stub and state the rubric↔validator mapping.
🔗 Chain Continuity
- The window is two arcs, not one path. Quests 1–2 belong to
quest_series: agentic-ai-mastery(GH-600 Agentic Codex); quests 3–5 belong toquest_series: Data Engineering Mastery. They share only the1100level code. For a data-scientist character, the Data Engineering sub-chain is the on-theme track; the two agentic-governance quests read as a different curriculum bolted onto the same level. This is a slicing/windowing artifact worth flagging to a maintainer — the level bundles disjoint learning tracks, so no single reader is the intended audience for all five. - Data Engineering sub-chain (3→4→5) is well-ordered. Spark’s frontmatter
unlocksStream + Data Quality, and StreamunlocksData Quality; the plan presents them in that dependency order, and each opens by referencing ETL Pipeline Design as the shared prerequisite. Conceptually the chain is coherent and Spark leaves a learner genuinely ready for the next two. The break is environmental, not pedagogical: Spark (self-contained local PySpark) passes, but Stream (needs a live Kafka broker) and Data Quality (needs a dataset + version-sensitive libs) both fail the moment a learner leaves pure-Python territory. A beginner who finishes Spark cleanly would hit a wall at Stream’s very firstdocker compose up. - Agentic sub-chain (1→2): the prerequisite carries a broken artifact forward. The Warden’s Pact
unlocksthe Capstone, and the Capstone’s Seal 6 / Challenge 6.2 explicitly refers back to Q19 for its three guardrails. A learner who copy-pasted Q19’s workflows would carry threebad substitution-failing files into the capstone — yet the capstone’s validator only checkstest -s .github/CODEOWNERSandgrep -qi forbidden AGENTS.md, so the capstone would still “pass” despite the upstream workflows being non-functional. The chain hides the Q19 defect rather than catching it. - The fix already exists inside the slice. The Capstone’s Challenge 1.2 (source lines 175/217) wraps its YAML fence in a single
{% raw %}…{% endraw %}pair and tells the learner “drop them when you copy the YAML” — the correct handling of this site’s Liquid escape. The Warden’s Pact does the same escape wrong (tags interleaved inside${{ }}). A maintainer fixing Q19 can copy the sibling quest’s proven pattern verbatim.
🧠 Reasoning & Method
- Mode:
execute. The machine evidence inwalk-evidence.json/walk-evidence.mdwas pre-computed and sealed by the workflow in a disposable sandbox (mock:false). Per the skill, I consumed it as-is and did not re-run, edit, or regenerate it — the engine’s childclaudeprocesses can’t authenticate from an agent Bash tool. Everypassed/failedabove is a command the engine actually ran; items I judged from reading the source (CODEOWNERS ordering, the two-arcs observation, the capstone-hides-Q19 continuity finding) are labelled as source-line reasoning, not execution. - What I ran vs. reasoned: I ran no quest commands myself; I read all five quest sources in plan order and cross-checked each engine finding against the exact source lines it cites. The linked-journey analysis (§ Chain Continuity) is my own reasoning over those sources plus the sealed per-quest verdicts.
- Coverage & limits: This is window 2 of 3 — quests 11–15 of the 15-quest level 1100. Quests 1–10 (windows 1 & 3, including the Autonomy Levels Matrix that Q19 depends on and ETL Pipeline Design that the Data Engineering arc assumes) were not in this session; the ledger accumulates them across runs. Snippet coverage was partial by design: the Warden’s Pact exposed only 1 of 7 snippets as literally runnable (the rest are illustrative YAML/CODEOWNERS/markdown, reasoned statically), and the Capstone 1 of 9. Full execution coverage was strongest on Spark (10 runnable) and Data Quality (9/9 runnable). No network access beyond what quests required; the Kafka/Docker and pip installs happened inside the sealed engine sandbox, not here.
- Confidence: High on the three high-severity blockers (each backed by a reproduced error string) and on the two passes (Spark and the Capstone validator both executed end-to-end with matching output). Medium on the “two-arcs” slicing observation, which is a curriculum-design judgment rather than an executable fact.