Codex
156835c048
ci: specs live in the issue body — body digest in review anchors, gate without a spec file
...
The spec file solved exactly one problem — proving that a review verdict
was passed on a given text — and created two: docs/specs/README.md
conflicted between parallel tasks and served as a second, stale status
dictionary, and every spec edit cost a commit, a push and a label. The
proof moves into the pipeline.
- review-doc-guard: normalizeIssueBody / issueBodyDigest (CRLF, trailing
whitespace, trailing newlines), the anchor line `Тело issue: <sha256>`,
anchorIssueBodyFrom, and issueBodyChanged — the finding "the spec
changed after a green spec review", judged against the pipeline's own
record in the last green SPEC-REVIEW, never against prose.
- reusableGreenVerdict takes the current digest: reuse (#499 ) skips the
model entirely, so without this a spec edit between rounds would pass
unseen. Documents without the record (the whole backlog) keep judging
by tree.
- process.yml: the material step reads the body with `gh issue view` in
the same run that fixes the material — the event snapshot describes a
text the reviewer may never see; the digest goes into the anchors, into
reuse and, when it differs, into the reviewer's prompt.
- process-gate: rule 3 judges the text (a `## ТЗ` heading or an AC1) with
the archived file still accepted; adding a new file under docs/specs/
warns — the directory is frozen.
- task-packet reads AC from the body first, the archived file second.
- PROCESS.md §2.3/§5/§7.1/§7.3/§10.5, AGENTS.md and docs/specs/README.md
say so; the index table is gone with the long-standing §7.3 debt.
Mutants: review-anchor-drops-issue-body, review-ignores-changed-spec-body,
reuse-ignores-changed-issue-body, process-gate-requires-spec-file.
Issue: #517
User-Visible: no
2026-09-10 10:18:17 +03:00
..
2026-09-09 03:51:25 +03:00
2026-09-10 06:27:59 +00:00
2026-08-12 19:18:54 +03:00
2026-09-06 17:52:05 +00:00
2026-08-29 10:13:09 +03:00
2026-08-04 14:13:38 +03:00
2026-08-31 04:35:56 +03:00
2026-08-31 03:56:01 +03:00
2026-09-08 19:51:04 +03:00
2026-08-29 10:06:41 +03:00
2026-09-08 00:31:25 +03:00
2026-09-08 00:31:25 +03:00
2026-09-08 00:31:25 +03:00
2026-08-28 10:44:27 +03:00
2026-08-29 21:15:21 +03:00
2026-09-02 22:10:16 +03:00
2026-09-02 21:59:43 +03:00
2026-09-03 01:22:01 +03:00
2026-09-04 19:26:35 +03:00
2026-08-23 00:34:55 +03:00
2026-09-09 18:53:38 +03:00
2026-09-09 02:18:58 +03:00
2026-08-30 19:05:24 +03:00
2026-09-09 15:14:20 +00:00
2026-09-06 17:52:05 +00:00
2026-09-06 12:56:13 +00:00
2026-08-09 21:51:33 +03:00
2026-09-01 15:08:22 +00:00
2026-09-04 03:38:26 +03:00
2026-08-30 12:42:31 +03:00
2026-08-30 13:04:04 +03:00
2026-09-03 15:23:40 +03:00
2026-09-03 21:42:57 +00:00
2026-09-05 09:25:08 +03:00
2026-09-09 03:51:25 +03:00
2026-09-06 17:38:47 +03:00
2026-09-08 21:26:29 +03:00
2026-09-03 15:23:40 +03:00
2026-09-04 08:58:48 +03:00
2026-09-03 15:23:40 +03:00
2026-08-29 21:39:08 +03:00
2026-09-03 15:23:40 +03:00
2026-08-20 11:00:22 +03:00
2026-08-27 23:17:52 +00:00
2026-08-20 11:00:22 +03:00
2026-08-30 07:48:16 +00:00
2026-08-31 02:36:55 +03:00
2026-08-30 13:16:27 +00:00
2026-08-29 22:20:18 +03:00
2026-08-29 22:20:18 +03:00
2026-08-19 22:37:25 +03:00
2026-08-30 07:48:16 +00:00
2026-08-16 22:35:54 +03:00
2026-08-30 14:03:35 +03:00
2026-09-09 18:53:38 +03:00
2026-09-01 17:54:48 +03:00
2026-09-06 15:39:34 +03:00
2026-09-06 17:38:47 +03:00
2026-09-09 21:18:51 +00:00
2026-08-30 00:45:31 +03:00
2026-09-07 03:47:57 +03:00
2026-09-01 22:23:57 +03:00
2026-08-28 05:40:28 +00:00
2026-08-24 15:06:06 +03:00
2026-08-11 19:15:21 +03:00
2026-09-06 16:10:46 +03:00
2026-09-06 16:10:46 +03:00
2026-09-02 21:56:04 +00:00
2026-09-03 01:22:01 +03:00
2026-09-06 16:10:46 +03:00
2026-09-08 21:55:07 +00:00
2026-09-09 01:11:24 +03:00
2026-08-11 02:49:42 +03:00
2026-08-10 00:24:42 +03:00
2026-08-29 14:46:52 +03:00
2026-09-08 10:44:13 +03:00
2026-09-04 19:26:35 +03:00
2026-09-02 00:08:02 +03:00
2026-08-25 12:49:41 +03:00
2026-08-19 02:12:37 +03:00
2026-08-13 00:14:51 +03:00
2026-09-08 21:26:29 +03:00
2026-09-04 22:03:45 +03:00
2026-08-28 05:40:28 +00:00
2026-09-08 00:31:25 +03:00
2026-09-09 19:49:18 +00:00
2026-09-10 06:27:59 +00:00
2026-08-28 18:08:27 +03:00
2026-09-09 03:51:25 +03:00
2026-08-20 01:38:01 +03:00
2026-09-06 07:48:03 +03:00
2026-09-06 11:23:51 +00:00
2026-09-06 07:06:54 +03:00
2026-09-06 15:01:53 +03:00
2026-09-06 07:06:54 +03:00
2026-09-06 11:23:51 +00:00
2026-08-28 10:46:27 +00:00
2026-09-04 16:31:06 +03:00
2026-08-11 22:12:08 +03:00
2026-08-17 16:45:41 +03:00
2026-08-31 04:35:56 +03:00
2026-09-05 12:10:26 +03:00
2026-09-04 22:04:09 +03:00
2026-09-08 10:44:13 +03:00
2026-08-18 21:31:04 +03:00
2026-09-09 21:39:17 +00:00
2026-08-12 12:43:27 +03:00
2026-08-27 00:21:23 +03:00
2026-09-06 15:29:50 +03:00
2026-09-09 21:00:54 +03:00
2026-08-29 22:20:18 +03:00
2026-09-06 17:38:47 +03:00
2026-09-08 21:55:07 +00:00
2026-08-30 15:55:08 +03:00
2026-08-30 21:34:32 +03:00
2026-08-19 18:04:11 +03:00
2026-08-22 12:25:05 +03:00
2026-08-25 12:17:30 +03:00
2026-08-19 15:43:23 +03:00
2026-09-06 07:48:03 +03:00
2026-08-29 21:15:21 +03:00
2026-09-06 17:38:47 +03:00
2026-09-06 17:38:47 +03:00
2026-08-19 15:43:23 +03:00
2026-09-07 21:07:03 +03:00
2026-09-07 11:06:28 +03:00
2026-09-07 11:36:23 +03:00
2026-09-07 03:47:57 +03:00
2026-09-07 11:06:28 +03:00
2026-09-07 03:47:57 +03:00
2026-09-07 21:05:57 +03:00
2026-09-07 03:50:36 +03:00
2026-09-07 11:06:28 +03:00
2026-09-09 16:30:18 +03:00
2026-09-06 07:06:54 +03:00
2026-09-08 00:31:25 +03:00
2026-09-06 17:38:47 +03:00
2026-08-27 13:58:06 +03:00
2026-09-06 17:38:47 +03:00
2026-09-06 17:38:47 +03:00
2026-09-09 18:53:38 +03:00
2026-08-20 08:42:34 +03:00
2026-09-10 10:18:17 +03:00
2026-09-09 03:52:23 +03:00
2026-09-09 03:54:42 +03:00
2026-09-09 03:52:23 +03:00
2026-09-09 03:52:23 +03:00
2026-09-09 03:54:02 +03:00
2026-09-09 01:11:24 +03:00
2026-09-08 00:31:25 +03:00
2026-09-09 17:38:48 +03:00
2026-08-27 18:55:41 +03:00
2026-09-09 21:18:51 +00:00
2026-09-09 00:10:16 +03:00
2026-09-04 22:03:45 +03:00
2026-09-08 00:31:25 +03:00
2026-08-26 02:20:57 +03:00
2026-09-06 17:38:47 +03:00
2026-08-24 22:59:33 +03:00
2026-08-26 02:20:57 +03:00
2026-08-28 05:40:28 +00:00
2026-08-24 17:35:45 +03:00
2026-09-10 10:18:17 +03:00
2026-08-22 10:56:22 +03:00
2026-09-04 18:33:03 +03:00
2026-09-08 10:44:13 +03:00
2026-09-03 21:42:57 +00:00
2026-09-04 00:41:40 +03:00
2026-09-04 00:35:21 +03:00
2026-08-11 02:49:42 +03:00
2026-08-28 05:40:28 +00:00
2026-09-03 15:23:40 +03:00
2026-09-03 15:23:40 +03:00
2026-09-06 17:38:47 +03:00
2026-08-28 10:25:36 +03:00
2026-09-03 16:50:54 +03:00
2026-08-29 21:15:21 +03:00
2026-09-06 17:38:47 +03:00
2026-09-09 02:53:36 +03:00
2026-09-03 19:18:13 +03:00
2026-09-08 10:44:13 +03:00
2026-08-31 09:45:53 +03:00
2026-08-19 02:49:39 +03:00
2026-08-21 00:50:15 +03:00
2026-08-25 14:47:04 +03:00
2026-08-29 21:17:31 +03:00
2026-08-26 01:34:20 +03:00
2026-09-08 18:49:36 +03:00
2026-09-09 09:32:36 +03:00
2026-09-09 02:53:36 +03:00
2026-09-09 09:32:36 +03:00
2026-09-09 13:57:53 +03:00
2026-08-17 12:01:14 +03:00
2026-09-07 03:47:57 +03:00
2026-09-10 10:18:17 +03:00
2026-09-09 01:11:24 +03:00
2026-09-01 16:32:25 +00:00
2026-09-03 21:42:57 +00:00
2026-09-03 23:24:08 +03:00
2026-08-29 11:29:42 +03:00
2026-09-09 18:33:24 +03:00
2026-09-09 15:14:20 +00:00
2026-09-05 16:10:19 +03:00
2026-09-05 16:10:19 +03:00
2026-09-05 16:04:54 +03:00
2026-08-31 01:36:59 +03:00
2026-08-14 03:32:53 +03:00
2026-08-11 05:40:32 +03:00
2026-08-08 21:33:09 +03:00
2026-09-09 01:11:24 +03:00
2026-08-26 13:39:52 +03:00
2026-08-22 10:56:38 +03:00
2026-09-06 17:38:47 +03:00
2026-08-27 20:30:07 +03:00
2026-09-06 18:46:50 +03:00
2026-09-05 22:13:25 +03:00
2026-09-06 17:52:05 +00:00
2026-09-09 02:18:58 +03:00
2026-09-06 17:52:05 +00:00
2026-09-06 17:38:47 +03:00
2026-09-06 07:06:54 +03:00