● Build complete and fully verified against prlg 0.5.0. Every checklist item done: #1

Open
navicore wants to merge 2 commits from prlg into main
Owner

┌───────────────────────────────────────────────┬───────────────────────────────────────────────────────────┐
│ Checklist item │ Status │
├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤
│ 7 new exercise files (02-terms ×4, │ all parse cleanly with markers in place │
│ 03-operators ×3) │ │
├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤
│ Matching solutions + nudge-only hints │ all 7 solutions pass their hidden test; hints carry no │
│ │ answers │
├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤
│ Renumber 02-comparison→04, 03-recursion→05 │ moved with plain mv │
│ (all three trees) │ │
├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤
│ info.toml: insert 7 entries, fix renumbered │ registry loads all 27 in correct curriculum order │
│ paths │ │
├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤
│ Strip ## Solution sketch from every existing │ 19 stripped, 0 remaining (the 20th, 05-double-each, │
│ hint │ was already sketch-free) │
└───────────────────────────────────────────────┴───────────────────────────────────────────────────────────┘

Verification performed:

  • cargo build + cargo test clean (no code changes; 0 unit tests).
  • loglings list shows the full sequence: intro(5) → arithmetic(5) → terms(4) → operators(3) → comparison(5) →
    recursion(5) = 27.
  • All 7 new solutions pass prlg run … --goal test (exit 1).
  • All 7 new exercise scaffolds parse (--goal true) — no learner-facing syntax traps.
  • Hint lookup works for a new exercise, a renumbered comparison exercise, and a renumbered recursion exercise
    (the path→hint mapping survived the renumber), and stripped hints now end at the nudge.
  • Inventory balanced: 27 exercises / 27 solutions / 27 hints.

The new arc teaches the term model the comparison chapter always assumed — atoms/numbers → variables &
unification → compound terms → arity → operators-as-terms → prefix/infix (tied back to arity) → precedence with
both left-assoc (-) and right-assoc (^) — before the learner reaches =:= vs = and age/2 in comparison.

The embedded corpus (include_dir!) was recompiled in this build, so loglings init/reset/update all carry the new
content. The design doc's checklist is satisfied; the only outstanding doc nit remains the stale README.md
curriculum table (still lists only 00-intro) noted in ROADMAP — say the word and I'll refresh it.

┌───────────────────────────────────────────────┬───────────────────────────────────────────────────────────┐ │ Checklist item │ Status │ ├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤ │ 7 new exercise files (02-terms ×4, │ ✅ all parse cleanly with markers in place │ │ 03-operators ×3) │ │ ├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤ │ Matching solutions + nudge-only hints │ ✅ all 7 solutions pass their hidden test; hints carry no │ │ │ answers │ ├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤ │ Renumber 02-comparison→04, 03-recursion→05 │ ✅ moved with plain mv │ │ (all three trees) │ │ ├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤ │ info.toml: insert 7 entries, fix renumbered │ ✅ registry loads all 27 in correct curriculum order │ │ paths │ │ ├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤ │ Strip ## Solution sketch from every existing │ ✅ 19 stripped, 0 remaining (the 20th, 05-double-each, │ │ hint │ was already sketch-free) │ └───────────────────────────────────────────────┴───────────────────────────────────────────────────────────┘ Verification performed: - cargo build + cargo test clean (no code changes; 0 unit tests). - loglings list shows the full sequence: intro(5) → arithmetic(5) → terms(4) → operators(3) → comparison(5) → recursion(5) = 27. - All 7 new solutions pass prlg run … --goal test (exit 1). - All 7 new exercise scaffolds parse (--goal true) — no learner-facing syntax traps. - Hint lookup works for a new exercise, a renumbered comparison exercise, and a renumbered recursion exercise (the path→hint mapping survived the renumber), and stripped hints now end at the nudge. - Inventory balanced: 27 exercises / 27 solutions / 27 hints. The new arc teaches the term model the comparison chapter always assumed — atoms/numbers → variables & unification → compound terms → arity → operators-as-terms → prefix/infix (tied back to arity) → precedence with both left-assoc (-) and right-assoc (^) — before the learner reaches =:= vs = and age/2 in comparison. The embedded corpus (include_dir!) was recompiled in this build, so loglings init/reset/update all carry the new content. The design doc's checklist is satisfied; the only outstanding doc nit remains the stale README.md curriculum table (still lists only 00-intro) noted in ROADMAP — say the word and I'll refresh it.
┌───────────────────────────────────────────────┬───────────────────────────────────────────────────────────┐
  │                Checklist item                 │                          Status                           │
  ├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤
  │ 7 new exercise files (02-terms ×4,            │  all parse cleanly with markers in place                │
  │ 03-operators ×3)                              │                                                           │
  ├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤
  │ Matching solutions + nudge-only hints         │  all 7 solutions pass their hidden test; hints carry no │
  │                                               │  answers                                                  │
  ├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤
  │ Renumber 02-comparison→04, 03-recursion→05    │  moved with plain mv                                    │
  │ (all three trees)                             │                                                           │
  ├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤
  │ info.toml: insert 7 entries, fix renumbered   │  registry loads all 27 in correct curriculum order      │
  │ paths                                         │                                                           │
  ├───────────────────────────────────────────────┼───────────────────────────────────────────────────────────┤
  │ Strip ## Solution sketch from every existing  │  19 stripped, 0 remaining (the 20th, 05-double-each,    │
  │ hint                                          │ was already sketch-free)                                  │
  └───────────────────────────────────────────────┴───────────────────────────────────────────────────────────┘

  Verification performed:
  - cargo build + cargo test clean (no code changes; 0 unit tests).
  - loglings list shows the full sequence: intro(5) → arithmetic(5) → terms(4) → operators(3) → comparison(5) →
  recursion(5) = 27.
  - All 7 new solutions pass prlg run … --goal test (exit 1).
  - All 7 new exercise scaffolds parse (--goal true) — no learner-facing syntax traps.
  - Hint lookup works for a new exercise, a renumbered comparison exercise, and a renumbered recursion exercise
  (the path→hint mapping survived the renumber), and stripped hints now end at the nudge.
  - Inventory balanced: 27 exercises / 27 solutions / 27 hints.

  The new arc teaches the term model the comparison chapter always assumed — atoms/numbers → variables &
  unification → compound terms → arity → operators-as-terms → prefix/infix (tied back to arity) → precedence with
  both left-assoc (-) and right-assoc (^) — before the learner reaches =:= vs = and age/2 in comparison.

  The embedded corpus (include_dir!) was recompiled in this build, so loglings init/reset/update all carry the new
  content. The design doc's checklist is satisfied; the only outstanding doc nit remains the stale README.md
  curriculum table (still lists only 00-intro) noted in ROADMAP — say the word and I'll refresh it.
● CI is set up and verified green. Summary:
All checks were successful
CI - Linux / CI - Linux x86_64 (pull_request) Successful in 25s
bc1e356f36
What I did

  - Host: Forgejo Actions (origin is git.navicore.tech, no .github/). I matched your established house convention
  from the sibling patch-prolog repo — the navicore-rust runner image (Rust 1.95.0 + just pre-installed) — rather
  than the skill's generic dtolnay/rust-toolchain + setup-just actions. That keeps loglings consistent with your
  other repos and still satisfies the skill's real goal (justfile = single source of truth, pinned toolchain in
  sync). Say the word if you'd prefer the portable dtolnay/setup-just variant instead.
  - justfile — already had every required recipe; I added the missing stats (adapted for this single binary crate:
  scc src + cargo modules structure --bin loglings) and aligned install with the standard --force. All other
  recipes preserved.
  - .forgejo/workflows/ci-linux.yml — PRs to main + workflow_dispatch, runs-on: navicore-rust, verify-toolchain
  step, registry + git caches keyed on Cargo.lock (no target/ cache), single just ci step. No SARIF/codeql steps.
  - rust-toolchain.toml — already present and correct (1.95.0); left as-is.
  - README — added a Development section documenting just ci (fmt-check → clippy-as-errors → test → build), the
  other recipes, and that CI runs on Forgejo Actions.

  Verified

  - Version-sync invariant holds: local rustc, rust-toolchain.toml channel, and the documented runner-image pin
  all agree on 1.95.0.
  - just ci passes locally — fmt-check ✓, clippy -D warnings ✓, test ✓ (0 tests), release build ✓ → "Safe to push
  - CI will pass."
  - Cargo.lock is tracked; no source/dependency changes were made.

  Note: the CI test step needs no prlg on the runner — there are no Rust tests that shell out to it (exercise
  verification is done via prlg locally, not in cargo test).
All checks were successful
CI - Linux / CI - Linux x86_64 (pull_request) Successful in 25s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin prlg:prlg
git switch prlg

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff prlg
git switch prlg
git rebase main
git switch main
git merge --ff-only prlg
git switch prlg
git rebase main
git switch main
git merge --no-ff prlg
git switch main
git merge --squash prlg
git switch main
git merge --ff-only prlg
git switch main
git merge prlg
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
navicore/loglings!1
No description provided.