prismatica 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +20 -8
  2. package/dist/assurance/mainpush.js +383 -8
  3. package/dist/assurance/mainpush.js.map +1 -1
  4. package/dist/assurance/proofinputs.js +62 -34
  5. package/dist/assurance/proofinputs.js.map +1 -1
  6. package/dist/atlas/labels.js +2 -2
  7. package/dist/atlas/labels.js.map +1 -1
  8. package/dist/atlas/next.js +120 -18
  9. package/dist/atlas/next.js.map +1 -1
  10. package/dist/board/html.js +37 -9
  11. package/dist/board/html.js.map +1 -1
  12. package/dist/board/model.js +58 -14
  13. package/dist/board/model.js.map +1 -1
  14. package/dist/cli.js +70 -6
  15. package/dist/cli.js.map +1 -1
  16. package/dist/commands/delta.js +84 -1
  17. package/dist/commands/delta.js.map +1 -1
  18. package/dist/commands/doctor.js +55 -11
  19. package/dist/commands/doctor.js.map +1 -1
  20. package/dist/commands/frame.js +13 -1
  21. package/dist/commands/frame.js.map +1 -1
  22. package/dist/commands/guide.js +17 -5
  23. package/dist/commands/guide.js.map +1 -1
  24. package/dist/commands/next.js +196 -26
  25. package/dist/commands/next.js.map +1 -1
  26. package/dist/commands/release.js +950 -0
  27. package/dist/commands/release.js.map +1 -0
  28. package/dist/commands/ship.js +150 -15
  29. package/dist/commands/ship.js.map +1 -1
  30. package/dist/commands/start.js +5 -2
  31. package/dist/commands/start.js.map +1 -1
  32. package/dist/commands/update.js +435 -0
  33. package/dist/commands/update.js.map +1 -0
  34. package/dist/detect.js +40 -10
  35. package/dist/detect.js.map +1 -1
  36. package/dist/executor.js +15 -0
  37. package/dist/executor.js.map +1 -1
  38. package/dist/git.js +27 -0
  39. package/dist/git.js.map +1 -1
  40. package/dist/guide.js +254 -33
  41. package/dist/guide.js.map +1 -1
  42. package/dist/paths.js +7 -0
  43. package/dist/paths.js.map +1 -1
  44. package/dist/planning/pack.js +12 -7
  45. package/dist/planning/pack.js.map +1 -1
  46. package/dist/planning/schema.js +17 -1
  47. package/dist/planning/schema.js.map +1 -1
  48. package/dist/prepush.js +52 -0
  49. package/dist/prepush.js.map +1 -1
  50. package/dist/records/store.js +17 -1
  51. package/dist/records/store.js.map +1 -1
  52. package/dist/records/types.js +122 -7
  53. package/dist/records/types.js.map +1 -1
  54. package/dist/releases.js +287 -0
  55. package/dist/releases.js.map +1 -0
  56. package/dist/render.js +23 -0
  57. package/dist/render.js.map +1 -1
  58. package/dist/title.js +69 -0
  59. package/dist/title.js.map +1 -0
  60. package/package.json +5 -1
  61. package/dist/agent-runner.js +0 -656
  62. package/dist/agent-runner.js.map +0 -1
  63. package/dist/atlas/packs.js +0 -169
  64. package/dist/atlas/packs.js.map +0 -1
package/README.md CHANGED
@@ -103,14 +103,25 @@ The `npm ci` step above it installs **your** checks — your typechecker, linter
103
103
  test runner, build — and is skipped when the repository has no npm lock file at
104
104
  its root, so a Python or Go repo adopts exactly as cleanly as a Node one.
105
105
 
106
- **Adopted before 0.2.0?** Your workflow says `npx prismatica gate` with no
107
- version, so CI runs whatever the registry resolves that minute. `prismatica
108
- doctor` reports it under **Runtime**, beside the version you are running
109
- locally, so skew is visible rather than silent. The repair is one line in
110
- `.github/workflows/prismatica-gate.yml` — change `run: npx prismatica gate` to
111
- `run: npx --yes prismatica@0.2.0 gate`. `init` will never do it for you: it
112
- preserves an existing workflow byte-for-byte by design, which is precisely why
113
- the pin is yours to move deliberately.
106
+ **Adopted before 0.2.0, or just fell behind the version you run locally?**
107
+ `prismatica doctor` reports the skew under **Runtime**, beside the version you
108
+ are running locally. The repair is deterministic — from the adopted app's own
109
+ repository:
110
+
111
+ ```bash
112
+ prismatica update
113
+ ```
114
+
115
+ It moves the one recognised CI gate invocation to the exact Prismatica version
116
+ running here — never npm's `latest` — only after `npm view` independently
117
+ confirms that exact version is public, edits nothing when the pin already
118
+ matches or is newer (never a downgrade), and refuses rather than guesses on a
119
+ self-hosted, missing, or ambiguous integration. `init` will never touch an
120
+ existing workflow itself: it preserves one byte-for-byte by design, which is
121
+ precisely why moving the pin is a deliberate, separate step — `update` is that
122
+ step, done the same way any other change is: a lane, a checkpoint, the
123
+ ordinary full Check run through the exact published target, and an ordinary
124
+ `ship`.
114
125
 
115
126
  Compatibility runs one way. A newer Prismatica reads every record an older
116
127
  released one wrote — new persisted fields are optional, and a frozen pre-0.2
@@ -215,6 +226,7 @@ prismatica guide terms # every bit of jargon in one sentence each
215
226
  | `close` | Remove a merged lane only at its exact head, preserving uncommitted and unproven-disposable ignored local data; always prints the main fast-forward |
216
227
  | `abandon` | Stop a change for good: close its PR and issue, archive its records on its own retained branch, remove the lane. Deletes no branch; prints how to restore it |
217
228
  | `doctor` | Repo health, an honest gate-assurance level, an adoption score over what could be measured, and the highest-value next fix |
229
+ | `update` | Move this repo's one recognised CI gate invocation to the exact Prismatica version you are running — after npm confirms it public; never a downgrade, never a floating tag |
218
230
  | `stats` | Median rework loops, cost per accepted change, escaped bugs |
219
231
  | `view` | The local board: Needs You · Work · Apps · Releases · Understand |
220
232
  | `context` | Machine-facing read-only context for the Start and Understand skills, which normally run it themselves. Writes nothing to your repo; available by hand for an agent with no plugin |
@@ -1,10 +1,53 @@
1
+ /**
2
+ * Classifies an outgoing push to the MAIN branch as one of the two narrow
3
+ * record-only shapes Prismatica itself needs to land directly on main —
4
+ * never a general record-lane framework, just these two hard-coded cases:
5
+ *
6
+ * 1. a Flow/Rule reconciliation (`flow approve`/`rules approve` writes
7
+ * straight to main) — every canonical Atlas record in the commit being
8
+ * pushed must verify (hash + signature in govern mode, hash alone in
9
+ * map-only), and the proposal files the same command CONSUMES may be
10
+ * deleted alongside it; or
11
+ * 2. a post-merge passport/contract-record update — a brand-new passport
12
+ * whose PR `gh` confirms is actually merged, and/or its contract's
13
+ * `stage` field alone advancing (never any other field).
14
+ *
15
+ * The diff must be EXACTLY one of these — any code, workflow, config,
16
+ * unsigned truth, or a mixture of the two shapes fails closed. Used by
17
+ * `prepush.ts`; never called for anything but the configured main branch.
18
+ *
19
+ * ## Every byte comes from a commit, never from the working tree
20
+ *
21
+ * The question this module answers is "what will `upstream..HEAD` put on
22
+ * main", and only Git objects can answer it. A working-tree read cannot: the
23
+ * tree may hold edits that are not in HEAD (so the verdict would describe
24
+ * bytes nobody is pushing) or lack edits that are (so it would miss what is).
25
+ * That is not a theoretical gap — the pre-push hook runs with whatever the
26
+ * owner or an agent happens to have on disk at that second, so a canonical
27
+ * Flow could be verified in its clean on-disk form while a tampered one rode
28
+ * the push, or vice versa.
29
+ *
30
+ * So: change types come from `git diff --name-status -z` between the two
31
+ * commits, the previous version of anything comes from `upstream`, and the
32
+ * new version — canonical Flows, `rules.md`, contracts, passports and the
33
+ * CONFIG that decides mode and owner key — comes from `head`. There is
34
+ * deliberately no working-tree cleanliness or intersection guard: uncommitted
35
+ * files are not being pushed, and making them change the verdict would be the
36
+ * same mistake in the opposite direction.
37
+ *
38
+ * The one exception is `provenPatchId` (`assurance/passport.ts`), which reads
39
+ * this change's own ledger and review from `mainRoot` — the shared,
40
+ * tier-aware answer to "which proof may a passport bind to", deliberately not
41
+ * duplicated here.
42
+ */
43
+ import { execa } from 'execa';
1
44
  import * as git from '../git.js';
2
45
  import { ghAuthenticated, ghInstalled, ghPrView } from '../gh.js';
3
46
  import { computeTruthHash, describeError, verifyFlowIntegrity, verifyRulesIntegrity, } from '../atlas/store.js';
4
47
  import { ATLAS_CANONICAL_GLOBS, PRISMATICA_DIR } from '../paths.js';
5
48
  import { isAllowed } from '../scope.js';
6
49
  import { parseMarkdownRecord } from '../records/store.js';
7
- import { ConfigSchema, ContractSchema, FlowProposalSchema, FlowSchema, PassportSchema, RuleProposalSchema, RulesFileSchema, } from '../records/types.js';
50
+ import { ConfigSchema, ContractSchema, DeltaSchema, FlowProposalSchema, FlowSchema, PassportSchema, ReleaseSchema, RuleProposalSchema, RulesFileSchema, } from '../records/types.js';
8
51
  import { contractFieldsEqualExceptStage, stageIndex } from '../state.js';
9
52
  import { provenPatchId } from './passport.js';
10
53
  const CONFIG_FILE = `${PRISMATICA_DIR}/config.json`;
@@ -17,6 +60,14 @@ function isFlowRulePath(file) {
17
60
  function isPassportOrContractPath(file) {
18
61
  return /^\.prismatica\/(passports|contracts)\/[^/]+\.md$/.test(file);
19
62
  }
63
+ /** `.prismatica/deltas/<id>.md` — never a nested path. */
64
+ function isDeltaPath(file) {
65
+ return /^\.prismatica\/deltas\/[^/]+\.md$/.test(file);
66
+ }
67
+ /** `.prismatica/releases/<version>.md` — never a nested path. */
68
+ function isReleasePath(file) {
69
+ return /^\.prismatica\/releases\/[^/]+\.md$/.test(file);
70
+ }
20
71
  /**
21
72
  * The committed config — mode, main branch and owner key — read from the
22
73
  * commit being pushed. Exported because `prepush.ts` needs the SAME object to
@@ -387,6 +438,101 @@ async function verifyContractStageOnlyChange(mainRoot, upstream, file, contract)
387
438
  }
388
439
  return { ok: true, reason: `contract stage advance to "${newStage}" verified` };
389
440
  }
441
+ /**
442
+ * A Delta lifecycle write pushed straight to main: `delta new` (a fresh
443
+ * proposal), `delta approve`/`delta reject` (a status flip from `proposed`,
444
+ * unbound), `frame --from-delta` (an approved, unbound delta newly bound to
445
+ * the contract it just framed — `runFrameFromDelta` writes this directly to
446
+ * main, same as every other delta command), or the terminal `delta done` (a
447
+ * bound delta's status flip to `done`, its `contractId` unchanged — the one
448
+ * transition `runDeltaDone` writes, once that contract's own change has
449
+ * genuinely merged). `done` is reachable from `approved` too: a Start-created
450
+ * delta is written `approved` WITH `contractId` already set and never passes
451
+ * through `framed` at all (see `isDeltaBound`). Never a substance edit:
452
+ * `flowId`, `step`, `today`, `instead`, `keep`, `assumptions`, `showMe` and
453
+ * `createdAt` must stay byte-identical to whatever was there before, and no
454
+ * OTHER status transition is legitimate.
455
+ *
456
+ * Modelled on `verifyContractStageOnlyChange`: a structural check on the
457
+ * SHAPE of the transition, not a re-verification that a referenced change
458
+ * really merged — that already happened once, at write time, against real
459
+ * git state (`runDeltaDone`), and re-deriving it here would duplicate that
460
+ * logic rather than share it. Deltas carry no truth hash or signature (they
461
+ * are plan records, never governed truth), so nothing here signs or hashes
462
+ * anything either.
463
+ */
464
+ async function verifyDeltaLifecyclePush(mainRoot, upstream, head, entries) {
465
+ for (const entry of entries) {
466
+ const file = entry.path;
467
+ const id = file.slice(file.lastIndexOf('/') + 1, -'.md'.length);
468
+ if (entry.change !== 'added' && entry.change !== 'modified') {
469
+ return {
470
+ ok: false,
471
+ reason: `${file} was ${entry.change} — a main push may only create or advance a delta, never remove one`,
472
+ };
473
+ }
474
+ let after;
475
+ try {
476
+ after = await readRecordAt(mainRoot, head, file, DeltaSchema);
477
+ }
478
+ catch (error) {
479
+ return { ok: false, reason: `${file} is not a valid record: ${describeError(error)}` };
480
+ }
481
+ if (!after) {
482
+ return { ok: false, reason: `${file} is not in the commit being pushed` };
483
+ }
484
+ if (after.id !== id) {
485
+ return { ok: false, reason: `${file}: filename id ("${id}") and delta.id ("${after.id}") disagree` };
486
+ }
487
+ if (entry.change === 'added') {
488
+ if (after.status !== 'proposed' || after.contractId !== undefined) {
489
+ return { ok: false, reason: `${file} is new on main and not a freshly proposed delta` };
490
+ }
491
+ continue;
492
+ }
493
+ const before = await git.showFile(mainRoot, upstream, file);
494
+ if (before === null) {
495
+ return { ok: false, reason: `${file}'s prior committed version is missing` };
496
+ }
497
+ let previous;
498
+ try {
499
+ previous = parseMarkdownRecord(before, DeltaSchema).data;
500
+ }
501
+ catch (error) {
502
+ return { ok: false, reason: `${file}'s prior committed version does not parse: ${describeError(error)}` };
503
+ }
504
+ const substanceUnchanged = previous.flowId === after.flowId &&
505
+ previous.step === after.step &&
506
+ previous.today === after.today &&
507
+ previous.instead === after.instead &&
508
+ previous.showMe === after.showMe &&
509
+ previous.createdAt === after.createdAt &&
510
+ previous.keep.length === after.keep.length &&
511
+ previous.keep.every((value, index) => value === after.keep[index]) &&
512
+ previous.assumptions.length === after.assumptions.length &&
513
+ previous.assumptions.every((value, index) => value === after.assumptions[index]);
514
+ const legitimateTransition = substanceUnchanged &&
515
+ ((previous.status === 'proposed' &&
516
+ (after.status === 'approved' || after.status === 'rejected') &&
517
+ previous.contractId === undefined &&
518
+ after.contractId === undefined) ||
519
+ (previous.status === 'approved' &&
520
+ after.status === 'framed' &&
521
+ previous.contractId === undefined &&
522
+ after.contractId !== undefined) ||
523
+ ((previous.status === 'approved' || previous.status === 'framed') &&
524
+ after.status === 'done' &&
525
+ previous.contractId !== undefined &&
526
+ after.contractId === previous.contractId));
527
+ if (!legitimateTransition) {
528
+ return {
529
+ ok: false,
530
+ reason: `${file} changed beyond a lifecycle transition Prismatica itself produces ("${previous.status}" → "${after.status}")`,
531
+ };
532
+ }
533
+ }
534
+ return { ok: true, reason: 'delta lifecycle write verified' };
535
+ }
390
536
  async function verifyPassportContractPush(mainRoot, config, upstream, head, entries) {
391
537
  for (const entry of entries) {
392
538
  const file = entry.path;
@@ -474,6 +620,217 @@ async function verifyPassportContractPush(mainRoot, config, upstream, head, entr
474
620
  }
475
621
  return { ok: true, reason: 'post-merge passport/contract-record update verified' };
476
622
  }
623
+ /** npm's own genuine-404 wording — anything else (offline, rate-limited, malformed) is uncertain. */
624
+ const NPM_NOT_FOUND = /E404|404 Not Found|is not in (?:this|the) registry/i;
625
+ async function npmPublicVersionQuery(pkgName, version) {
626
+ const result = await execa('npm', ['view', `${pkgName}@${version}`, 'dist.integrity', '--json'], {
627
+ reject: false,
628
+ });
629
+ if (result.failed) {
630
+ return NPM_NOT_FOUND.test(`${result.stderr}${result.stdout}`)
631
+ ? { state: 'absent' }
632
+ : { state: 'uncertain' };
633
+ }
634
+ try {
635
+ const parsed = JSON.parse(result.stdout);
636
+ return typeof parsed === 'string' && parsed.length > 0
637
+ ? { state: 'present', integrity: parsed }
638
+ : { state: 'uncertain' };
639
+ }
640
+ catch {
641
+ return { state: 'uncertain' };
642
+ }
643
+ }
644
+ /** `null` = could not be answered. Fails closed on any entry it cannot read a version from. */
645
+ async function npmStagedVersions(pkgName) {
646
+ const result = await execa('npm', ['stage', 'list', pkgName, '--json'], { reject: false });
647
+ if (result.failed) {
648
+ return null;
649
+ }
650
+ let parsed;
651
+ try {
652
+ parsed = JSON.parse(result.stdout);
653
+ }
654
+ catch {
655
+ return null;
656
+ }
657
+ if (!Array.isArray(parsed)) {
658
+ return null;
659
+ }
660
+ const versions = [];
661
+ for (const entry of parsed) {
662
+ if (typeof entry !== 'object' || entry === null) {
663
+ return null;
664
+ }
665
+ const version = entry.version;
666
+ if (typeof version !== 'string' || version.length === 0) {
667
+ return null;
668
+ }
669
+ versions.push(version);
670
+ }
671
+ return versions;
672
+ }
673
+ async function committedPackageName(mainRoot, head) {
674
+ const text = await git.showFile(mainRoot, head, 'package.json');
675
+ if (text === null) {
676
+ return null;
677
+ }
678
+ try {
679
+ const parsed = JSON.parse(text);
680
+ return typeof parsed.name === 'string' && parsed.name.length > 0 ? parsed.name : null;
681
+ }
682
+ catch {
683
+ return null;
684
+ }
685
+ }
686
+ /**
687
+ * The release partition: EXACTLY a brand-new, registry-corroborated release
688
+ * record. `published` is corroborated by the version's public presence with
689
+ * matching integrity; `superseded` by the version's absence from BOTH the
690
+ * public listing and the staged candidates. Anything the registry cannot
691
+ * answer fails closed — never "probably fine".
692
+ */
693
+ async function verifyReleasePush(mainRoot, head, entries) {
694
+ const pkgName = await committedPackageName(mainRoot, head);
695
+ if (!pkgName) {
696
+ return { ok: false, reason: 'package.json is not readable at the commit being pushed' };
697
+ }
698
+ for (const entry of entries) {
699
+ const file = entry.path;
700
+ const id = file.slice(file.lastIndexOf('/') + 1, -'.md'.length);
701
+ if (entry.change !== 'added') {
702
+ return {
703
+ ok: false,
704
+ reason: entry.change === 'modified' || entry.change === 'deleted'
705
+ ? `${file} already existed on main — release records are write-once`
706
+ : `${file} was ${entry.change} — a main push only ever adds a release record`,
707
+ };
708
+ }
709
+ let release;
710
+ try {
711
+ release = await readRecordAt(mainRoot, head, file, ReleaseSchema);
712
+ }
713
+ catch (error) {
714
+ return { ok: false, reason: `${file} is not a valid record: ${describeError(error)}` };
715
+ }
716
+ if (!release) {
717
+ return { ok: false, reason: `${file} is not in the commit being pushed` };
718
+ }
719
+ if (release.version !== id) {
720
+ return {
721
+ ok: false,
722
+ reason: `${file}: filename version ("${id}") and release.version ("${release.version}") must agree`,
723
+ };
724
+ }
725
+ let boundContract;
726
+ try {
727
+ boundContract = await readRecordAt(mainRoot, head, `${PRISMATICA_DIR}/contracts/${release.contractId}.md`, ContractSchema);
728
+ }
729
+ catch (error) {
730
+ return {
731
+ ok: false,
732
+ reason: `${file}: no valid contract "${release.contractId}" found on main to bind this release to: ${describeError(error)}`,
733
+ };
734
+ }
735
+ if (!boundContract || boundContract.releaseVersion !== release.version) {
736
+ return {
737
+ ok: false,
738
+ reason: `${file}: contract "${release.contractId}" does not bind to release version "${release.version}"`,
739
+ };
740
+ }
741
+ if (release.outcome === 'published') {
742
+ const query = await npmPublicVersionQuery(pkgName, release.version);
743
+ if (query.state === 'uncertain') {
744
+ return {
745
+ ok: false,
746
+ reason: `${file}: the registry could not confirm ${pkgName}@${release.version}'s publication — fails closed`,
747
+ };
748
+ }
749
+ if (query.state === 'absent') {
750
+ return {
751
+ ok: false,
752
+ reason: `${file}: claims "published", but ${pkgName}@${release.version} is not publicly present`,
753
+ };
754
+ }
755
+ if (query.integrity !== release.integrity) {
756
+ return {
757
+ ok: false,
758
+ reason: `${file}: the registry's integrity for ${pkgName}@${release.version} does not match this record's`,
759
+ };
760
+ }
761
+ // The npm half alone is not defence-in-depth: a hand-authored record
762
+ // can claim any `commit` it likes while an unrelated npm publication
763
+ // happens to match on integrity. Independently prove the Git half too —
764
+ // every byte read at `release.commit`, never the working tree.
765
+ const tag = release.tag; // ReleaseSchema requires this when outcome is "published"
766
+ if (!(await git.tagExists(mainRoot, tag))) {
767
+ return { ok: false, reason: `${file}: tag "${tag}" does not exist locally — fails closed` };
768
+ }
769
+ let tagCommit;
770
+ try {
771
+ tagCommit = await git.revParse(mainRoot, tag);
772
+ }
773
+ catch (error) {
774
+ return { ok: false, reason: `${file}: tag "${tag}" could not be resolved: ${describeError(error)}` };
775
+ }
776
+ if (tagCommit !== release.commit) {
777
+ return {
778
+ ok: false,
779
+ reason: `${file}: tag "${tag}" resolves to ${tagCommit}, not the recorded commit "${release.commit}"`,
780
+ };
781
+ }
782
+ const manifestText = await git.showFile(mainRoot, release.commit, 'package.json');
783
+ if (manifestText === null) {
784
+ return { ok: false, reason: `${file}: package.json is not readable at commit "${release.commit}" — fails closed` };
785
+ }
786
+ let manifestVersion;
787
+ try {
788
+ manifestVersion = JSON.parse(manifestText).version;
789
+ }
790
+ catch {
791
+ return { ok: false, reason: `${file}: package.json at commit "${release.commit}" is not valid JSON` };
792
+ }
793
+ if (manifestVersion !== release.version) {
794
+ return {
795
+ ok: false,
796
+ reason: `${file}: package.json at commit "${release.commit}" has version "${String(manifestVersion)}", not "${release.version}"`,
797
+ };
798
+ }
799
+ }
800
+ else {
801
+ const query = await npmPublicVersionQuery(pkgName, release.version);
802
+ if (query.state === 'uncertain') {
803
+ return {
804
+ ok: false,
805
+ reason: `${file}: the registry could not confirm ${pkgName}@${release.version}'s absence — fails closed`,
806
+ };
807
+ }
808
+ if (query.state === 'present') {
809
+ return {
810
+ ok: false,
811
+ reason: `${file}: claims "superseded", but ${pkgName}@${release.version} is publicly present`,
812
+ };
813
+ }
814
+ const staged = await npmStagedVersions(pkgName);
815
+ if (staged === null) {
816
+ return {
817
+ ok: false,
818
+ reason: `${file}: the staged-candidate listing could not be read — fails closed`,
819
+ };
820
+ }
821
+ if (staged.includes(release.version)) {
822
+ return {
823
+ ok: false,
824
+ reason: `${file}: claims "superseded", but ${release.version} is still staged`,
825
+ };
826
+ }
827
+ }
828
+ }
829
+ return {
830
+ ok: true,
831
+ reason: `${entries.length} release record(s) independently corroborated by the registry`,
832
+ };
833
+ }
477
834
  /**
478
835
  * `upstream` is the ref to diff against (e.g. `origin/main`) — the commits
479
836
  * about to be pushed. `head` is the commit being pushed; `prepush.ts` has
@@ -489,31 +846,49 @@ export async function classifyMainPush(mainRoot, config, upstream, head = 'HEAD'
489
846
  if (changed.length === 0) {
490
847
  return { ok: true, reason: 'nothing to push' };
491
848
  }
492
- // Four-way, in this order: canonical truth, the proposal files an approval
493
- // consumes, post-merge records, and everything else. A proposal path can
494
- // never also be canonical (`ATLAS_CANONICAL_GLOBS` is `flows/*.md` plus
495
- // `rules.md`, and picomatch's `*` does not cross `/`), so the partition is
496
- // genuinely disjoint.
849
+ // Six-way, in this order: canonical truth, the proposal files an approval
850
+ // consumes, post-merge records, a Delta lifecycle write, a release record,
851
+ // and everything else. A proposal path can never also be canonical
852
+ // (`ATLAS_CANONICAL_GLOBS` is `flows/*.md` plus `rules.md`, and picomatch's
853
+ // `*` does not cross `/`), and a Delta path (`deltas/*.md`) and a release
854
+ // path (`releases/*.md`) are each disjoint from every other partition — so
855
+ // the whole split is genuinely disjoint.
497
856
  const flowRuleEntries = changed.filter((entry) => isFlowRulePath(entry.path));
498
857
  const proposals = changed
499
858
  .map(asProposalFile)
500
859
  .filter((proposal) => proposal !== null);
501
860
  const recordEntries = changed.filter((entry) => isPassportOrContractPath(entry.path));
861
+ const deltaEntries = changed.filter((entry) => isDeltaPath(entry.path));
862
+ const releaseEntries = changed.filter((entry) => isReleasePath(entry.path));
502
863
  const classified = new Set([
503
864
  ...flowRuleEntries.map((entry) => entry.path),
504
865
  ...proposals.map((proposal) => proposal.file),
505
866
  ...recordEntries.map((entry) => entry.path),
867
+ ...deltaEntries.map((entry) => entry.path),
868
+ ...releaseEntries.map((entry) => entry.path),
506
869
  ]);
507
870
  const other = changed.filter((entry) => !classified.has(entry.path));
508
871
  if (other.length > 0) {
509
872
  return { ok: false, reason: `touches non-record file(s): ${other.map((entry) => entry.path).join(', ')}` };
510
873
  }
511
- if ((flowRuleEntries.length > 0 || proposals.length > 0) && recordEntries.length > 0) {
874
+ const shapesUsed = [
875
+ flowRuleEntries.length > 0 || proposals.length > 0,
876
+ recordEntries.length > 0,
877
+ deltaEntries.length > 0,
878
+ releaseEntries.length > 0,
879
+ ].filter(Boolean).length;
880
+ if (shapesUsed > 1) {
512
881
  return {
513
882
  ok: false,
514
- reason: 'mixes a Flow/Rule reconciliation with a passport/contract update — push these separately',
883
+ reason: 'mixes a Flow/Rule reconciliation, a passport/contract update, a Delta lifecycle write and/or a release record — push these separately',
515
884
  };
516
885
  }
886
+ if (releaseEntries.length > 0) {
887
+ return verifyReleasePush(mainRoot, head, releaseEntries);
888
+ }
889
+ if (deltaEntries.length > 0) {
890
+ return verifyDeltaLifecyclePush(mainRoot, upstream, head, deltaEntries);
891
+ }
517
892
  if (recordEntries.length > 0) {
518
893
  return verifyPassportContractPush(mainRoot, config, upstream, head, recordEntries);
519
894
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mainpush.js","sourceRoot":"","sources":["../../src/assurance/mainpush.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mainpush.js","sourceRoot":"","sources":["../../src/assurance/mainpush.ts"],"names":[],"mappings":"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"}