Repository navigation
Commit e3628e0
committed
feat(ci): Stage 2 — this repository runs on Rust; the public contract does not
#262 Stage 2 is deliberately thin. Stage 1 proved the Rust core works behind
the launcher; Stage 2 proves only that Own.NET can RUN on it internally, and
that doing so moved nothing a user can see.
What did NOT change, because changing it would be Stage 3 wearing a disguise:
EngineSelection.Default is still Engine.Python, action.yml's engine input still
defaults to python, and a bare `owen` / `own-check.sh` / `own-check.ps1` /
Action invocation still resolves Python. Stage 2 is not implemented by moving a
default — it is implemented by every internal dogfood call site ASKING for
Rust, which is why the ask is written at each call site where a control can
read it back.
The census, because the claim needs a denominator. "Own.NET CI is Rust-default"
is unfalsifiable if it means "we found one job that runs Rust", so
docs/evidence/p022-stage2-census.json names EVERY call site in every workflow
that executes the analysis core or a production launcher surface — twenty of
them across five workflows — and the role each plays: 7 public-contract
verifiers that stay Python-default on purpose, 6 explicit references, 5 compare
gates, 2 operational dogfood. tests/test_stage2_dogfood.py enumerates the
workflows itself and fails in BOTH directions: an unclassified call site, and a
ledger entry for a job that no longer invokes anything. A census that can be
satisfied by editing prose is not a census.
Class D — the Rust-default population — was exactly one job before this change:
own-check-codescan, which calls itself dog-food in its own name. It now builds
the production own-cli, records the candidate's sha256 and byte length, and
passes `engine: rust`. The Action's own public default is untouched and is
still exercised bare by own-check-surface and by the marketplace consumer
simulation, so switching the dogfood deleted no public-contract evidence.
stage2-dogfood is added because codescan is ubuntu-only and uploads a single
code-scanning category, so it cannot carry Windows — and the two launcher
surfaces differ in exactly the mechanics that cost Stage 1 six CI rounds. It
runs this repository's own tree through own-check.sh on both platforms and
through own-check.ps1 on Windows, and then breaks the candidate on purpose to
show the run fails visibly rather than being rescued by Python.
Nine controls, positive and negative: the census; every Class-D site selects
Rust explicitly with a candidate; the public defaults have not moved; a forced
Rust failure is never rescued; the candidate is the production own-cli and the
job says which one; no PATH or target-dir discovery; the reference paths still
exist and `--engine python` still answers; no compare gate was traded for Rust
exposure; the claim covers Linux AND Windows.
The public-default control is a falsifier, not a grep. It runs a BARE
invocation with OWEN_RUST_CORE pointing at something that cannot work: if the
default had moved, the run would die on the locator; because it has not, the
run ignores the candidate entirely and produces a verdict. Written that way
after the first version failed for the wrong reason — it assumed own-check.sh
honours OWEN_PYTHON, and it does not, which is a real asymmetry between the
launcher surfaces and is recorded in the control rather than papered over.
And the relabel escape is closed: every other rule is satisfied by moving a job
OUT of Class D, so a job that calls itself dog-food is Class D by declaration
and the ledger does not get to disagree with the workflow about what the job is
for.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CYLNQy6tLXqsV1CbuNqsSb1 parent ba1d4cf commit e3628e0
8 files changed
Lines changed: 1130 additions & 6 deletions
File tree
- .github/workflows
- docs
- evidence
- generated
- proposals
- scripts
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
196 | 196 | | |
197 | 197 | | |
198 | 198 | | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
199 | 212 | | |
200 | 213 | | |
201 | 214 | | |
| |||
2636 | 2649 | | |
2637 | 2650 | | |
2638 | 2651 | | |
| 2652 | + | |
| 2653 | + | |
| 2654 | + | |
| 2655 | + | |
| 2656 | + | |
| 2657 | + | |
| 2658 | + | |
| 2659 | + | |
| 2660 | + | |
| 2661 | + | |
2639 | 2662 | | |
2640 | | - | |
| 2663 | + | |
2641 | 2664 | | |
2642 | 2665 | | |
2643 | 2666 | | |
| |||
2649 | 2672 | | |
2650 | 2673 | | |
2651 | 2674 | | |
| 2675 | + | |
| 2676 | + | |
| 2677 | + | |
| 2678 | + | |
| 2679 | + | |
2652 | 2680 | | |
2653 | 2681 | | |
2654 | | - | |
| 2682 | + | |
| 2683 | + | |
| 2684 | + | |
| 2685 | + | |
| 2686 | + | |
| 2687 | + | |
| 2688 | + | |
| 2689 | + | |
| 2690 | + | |
| 2691 | + | |
| 2692 | + | |
| 2693 | + | |
| 2694 | + | |
| 2695 | + | |
| 2696 | + | |
| 2697 | + | |
| 2698 | + | |
2655 | 2699 | | |
2656 | 2700 | | |
2657 | 2701 | | |
2658 | 2702 | | |
2659 | 2703 | | |
| 2704 | + | |
2660 | 2705 | | |
2661 | 2706 | | |
2662 | 2707 | | |
| |||
2671 | 2716 | | |
2672 | 2717 | | |
2673 | 2718 | | |
| 2719 | + | |
| 2720 | + | |
| 2721 | + | |
| 2722 | + | |
| 2723 | + | |
| 2724 | + | |
| 2725 | + | |
| 2726 | + | |
| 2727 | + | |
| 2728 | + | |
| 2729 | + | |
| 2730 | + | |
| 2731 | + | |
| 2732 | + | |
| 2733 | + | |
| 2734 | + | |
| 2735 | + | |
| 2736 | + | |
| 2737 | + | |
| 2738 | + | |
| 2739 | + | |
| 2740 | + | |
| 2741 | + | |
| 2742 | + | |
| 2743 | + | |
| 2744 | + | |
| 2745 | + | |
| 2746 | + | |
| 2747 | + | |
| 2748 | + | |
| 2749 | + | |
| 2750 | + | |
| 2751 | + | |
| 2752 | + | |
| 2753 | + | |
| 2754 | + | |
| 2755 | + | |
| 2756 | + | |
| 2757 | + | |
| 2758 | + | |
| 2759 | + | |
| 2760 | + | |
| 2761 | + | |
| 2762 | + | |
| 2763 | + | |
| 2764 | + | |
| 2765 | + | |
| 2766 | + | |
| 2767 | + | |
| 2768 | + | |
| 2769 | + | |
| 2770 | + | |
| 2771 | + | |
| 2772 | + | |
| 2773 | + | |
| 2774 | + | |
| 2775 | + | |
| 2776 | + | |
| 2777 | + | |
| 2778 | + | |
| 2779 | + | |
| 2780 | + | |
| 2781 | + | |
| 2782 | + | |
| 2783 | + | |
| 2784 | + | |
| 2785 | + | |
| 2786 | + | |
| 2787 | + | |
| 2788 | + | |
| 2789 | + | |
| 2790 | + | |
| 2791 | + | |
| 2792 | + | |
| 2793 | + | |
| 2794 | + | |
| 2795 | + | |
| 2796 | + | |
| 2797 | + | |
| 2798 | + | |
| 2799 | + | |
| 2800 | + | |
| 2801 | + | |
| 2802 | + | |
| 2803 | + | |
| 2804 | + | |
| 2805 | + | |
| 2806 | + | |
| 2807 | + | |
| 2808 | + | |
| 2809 | + | |
| 2810 | + | |
| 2811 | + | |
| 2812 | + | |
| 2813 | + | |
| 2814 | + | |
| 2815 | + | |
| 2816 | + | |
| 2817 | + | |
2674 | 2818 | | |
2675 | 2819 | | |
2676 | 2820 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
0 commit comments