docs(6205): last id-less stories in services — a ported-from project name and two "this milestone" references

backup_s3 says what its signing is checked against instead of which of the
operator's projects it was ported from; rulebooks and shape_check state what
the code is for rather than which milestone it belonged to.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-21 20:35:04 -04:00
co-authored by Claude Opus 5.5
parent fa4f88747e
commit 87e8f8f777
3 changed files with 10 additions and 11 deletions
+2 -2
View File
@@ -1,8 +1,8 @@
"""A small S3 client for sending backups: AWS Signature Version 4 over httpx,
path-style addressing (endpoint/bucket/key), and the two calls a backup needs.
Ported from FabledSteward's `steward/backup/s3.py`, which is tested against
the same AWS examples as tests/test_services_backup_s3.py.
The signing is checked against AWS's published SigV4 examples in
tests/test_services_backup_s3.py.
Scribe puts and lists; it never deletes. The bucket keeps the history and
thins it on its own policy, so a key that may only add objects is enough —
+6 -7
View File
@@ -324,8 +324,8 @@ def rule_brief(rule: Rule, **extra) -> dict:
of payload for a precision nobody reads.
`why` and `how_to_apply` are deliberately NOT here — they are the depth a
caller gets from get_rule, and putting them in every listing is the bloat
this milestone is about.
caller gets from get_rule, and putting them in every listing would bloat
every payload that lists rules.
"""
out = {
"id": rule.id,
@@ -1583,11 +1583,10 @@ async def rules_due_for_verification(
) -> list[Rule]:
"""Rules that carry a check, oldest verification first, never-checked top.
THE QUERY THIS MILESTONE EXISTS FOR. `verify_with` and `expires_when` are
storage; this is what turns them into something that gets acted on. The
307 audit cost a session and found four broken rules by luck — this makes
the same question a list, and staleness measurable by age instead of
discoverable by accident.
`verify_with` and `expires_when` are storage; this is what turns them into
something that gets acted on. Without it, finding broken rules takes an
audit and luck — this makes the same question a list, and staleness
measurable by age instead of discoverable by accident.
Ordered `verified_at` ASC NULLS FIRST: never-checked outranks
checked-long-ago, because a rule nobody has ever confirmed is a claim
+2 -2
View File
@@ -161,8 +161,8 @@ def summarise(outcomes: list[str]) -> dict:
`checked` is turns the question was put to (a first stop that wrote
something): passed + blocked. `asked` is the blocked ones. `left` is
asks the agent walked past — the stop after a block that still had
unjudged shapes. That last number is the slip the milestone exists to
make visible."""
unjudged shapes. That last number is the slip this check exists to make
visible."""
checked = sum(1 for o in outcomes if o in ("passed", "blocked"))
asked = sum(1 for o in outcomes if o == "blocked")
left = sum(1 for o in outcomes if o == "left_after_block")