Skip to content

Commit 23ff581

Browse files
committed
Add cross-language parity and example output contract checks
1 parent 8ade85e commit 23ff581

10 files changed

Lines changed: 1024 additions & 24 deletions

File tree

CONTRIBUTING.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@ Validate checkpoint completeness with:
4545
- `./scripts/check-checkpoint-completeness.ps1` (PowerShell)
4646
- `bash ./scripts/check-checkpoint-completeness.sh` (Bash)
4747

48+
Validate cross-language parity with:
49+
50+
- `./scripts/check-cross-language-parity.ps1` (PowerShell)
51+
- `bash ./scripts/check-cross-language-parity.sh` (Bash)
52+
53+
Validate example output contracts with:
54+
55+
- `./scripts/check-example-output-contracts.ps1` (PowerShell)
56+
- `bash ./scripts/check-example-output-contracts.sh` (Bash)
57+
4858
Run full repository checks with:
4959

5060
- `./scripts/verify-repo.ps1` (PowerShell)

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ Run checks locally:
155155
./scripts/check-readme-structure.ps1
156156
./scripts/check-module-completeness.ps1
157157
./scripts/check-checkpoint-completeness.ps1
158+
./scripts/check-cross-language-parity.ps1
159+
./scripts/check-example-output-contracts.ps1
158160
./scripts/audit-education-quality.ps1
159161
./scripts/lint.ps1
160162
./scripts/smoke-languages.ps1
@@ -167,6 +169,8 @@ bash ./scripts/check-links.sh
167169
bash ./scripts/check-readme-structure.sh
168170
bash ./scripts/check-module-completeness.sh
169171
bash ./scripts/check-checkpoint-completeness.sh
172+
bash ./scripts/check-cross-language-parity.sh
173+
bash ./scripts/check-example-output-contracts.sh
170174
bash ./scripts/audit-education-quality.sh
171175
bash ./scripts/lint.sh
172176
bash ./scripts/smoke-languages.sh
@@ -182,7 +186,7 @@ The multi-language smoke scripts also compile standalone C# exercises by generat
182186

183187
Use [EDUCATIONAL_EXAMPLE_REVIEW_RUBRIC.md](EDUCATIONAL_EXAMPLE_REVIEW_RUBRIC.md) to keep entry examples pedagogically consistent during reviews. The education audit command is advisory and writes markdown/json findings without failing CI.
184188

185-
Documentation sync also validates that [CONCEPT_INDEX.md](CONCEPT_INDEX.md) covers every implemented module and checkpoint path listed in the automation manifest.
189+
Documentation sync also validates that [CONCEPT_INDEX.md](CONCEPT_INDEX.md) covers every implemented module and checkpoint path listed in the automation manifest. Cross-language parity checks now validate module focus/teaching headers across tracks, and example output contracts validate stable learner-visible output for smoke-targeted examples.
186190

187191
## Contributing
188192

languages/cpp/04-expert/smart-pointers-in-depth/example/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
// Module focus: Smart pointers in depth.
2-
// Why it matters: practicing smart pointers in depth patterns makes exercises and checkpoints
3-
// easier to reason about.
1+
// Module focus: Tracking ownership and lifetime when multiple references can observe the same
2+
// value. Why it matters: practicing smart pointers in depth patterns makes exercises and
3+
// checkpoints easier to reason about.
44

55
// This example shows tracking ownership and lifetime when multiple references can observe the same
66
// value. In C++, the example keeps value flow, references, and explicit control visible.

languages/python/04-expert/smart-pointers-in-depth/example/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Module focus: Smart pointers in depth.
1+
# Module focus: Tracking ownership and lifetime when multiple references can observe the same value.
22
# Why it matters: practicing smart pointers in depth patterns makes exercises and checkpoints easier
33
# to reason about.
44

0 commit comments

Comments
 (0)