Reconcile Qonto acceptance and repair task status tracking
Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a102b3-d324-7ee3-a57a-702b4ae6a39b
This commit is contained in:
parent
d7bc943b87
commit
be450d8cff
11 changed files with 168 additions and 156 deletions
|
|
@ -12,7 +12,7 @@ Generated by `tools/register_index.py` from `findings/`. Do not edit by hand. La
|
|||
| [RISK-F-0014](findings/RISK-F-0014-emergent-loaded-withdrawal-snapshot.md) | Loaded Emergent 0.2.1 continues serving a source after withdrawal and reseal | emergent-security | low | public | none | emergent-security | open | instant (0) | **due** |
|
||||
| [RISK-F-0013](findings/RISK-F-0013-emergent-unsealed-card-receipt.md) | Loaded Emergent 0.2.1 returns unsealed card bytes under the reviewed digest | emergent-security | medium | public | none | emergent-security | open | instant (0) | **due** |
|
||||
| [RISK-F-0012](findings/RISK-F-0012-e-invoice-receipt-and-retention.md) | The estate cannot show it receives and retains EN 16931 e-invoices | qonto-assistant | medium | public | none | qonto-assistant | open | instant (0) | **due** |
|
||||
| [RISK-F-0011](findings/RISK-F-0011-qonto-audit-deny-stream-completeness.md) | qonto-assistant audit.deny stream completeness is not established | qonto-assistant | medium | public | **pending** (t5, sent) | qonto-assistant | open | instant (0) | **due** |
|
||||
| [RISK-F-0011](findings/RISK-F-0011-qonto-audit-deny-stream-completeness.md) | qonto-assistant audit.deny stream completeness is not established | qonto-assistant | medium | public | none | qonto-assistant | accepted | instant (0) | **due** |
|
||||
| [RISK-F-0010](findings/RISK-F-0010-embedded-backup-webdav-credential.md) | Forgejo backup source embeds a WebDAV credential default | railiance-platform | low | public | none | railiance-platform | fixed | 1h (1) | **due** |
|
||||
| [RISK-F-0009](findings/RISK-F-0009-openbao-deny-set-covers-a-third-of-high-risk-lanes.md) | agent-high-risk-boundary denies 6 of 17 high-risk lanes; the direct bao path is unprotected for the rest | railiance-platform | **high** | public | none | railiance-platform | fixed | instant (0) | **due** |
|
||||
| [RISK-F-0008](findings/RISK-F-0008-audit-retention-legal-basis-assumed.md) | The legal basis for retaining audit facts against an erasure request has been assumed, never established | audit-core | medium | public | **answered** (t2, answered) | risk-nexus | accepted | 8h (2) | **due** |
|
||||
|
|
|
|||
26
SCOPE.md
26
SCOPE.md
|
|
@ -1,6 +1,6 @@
|
|||
# SCOPE — risk-nexus
|
||||
|
||||
Updated 2026-09-05 (Europe/Berlin), including RISK-WP-0006 and RISK-WP-0007. This describes the checked-in capabilities;
|
||||
Updated 2026-10-03 (Europe/Berlin), including the cleanup under RISK-WP-0005 and RISK-WP-0007. This describes the checked-in capabilities;
|
||||
[INTENT.md](INTENT.md) remains the intended remit. Evidence and remaining gaps
|
||||
are in the [dated assessment](history/2026-09-05-014333-scope-intent-assessment.md).
|
||||
|
||||
|
|
@ -18,8 +18,8 @@ or independent scheduler, and does not itself serve `risk.coulomb.social`.
|
|||
| Grade and explain decisions | [Method instruments](docs/method/) define severity, disclosure, escalation, review, dependencies and verification. Dated rulings and finding histories record applied decisions. Scoring and acceptance are judgements, not computed decisions. |
|
||||
| Generate a readable register | `make register` builds `REGISTER.md` from findings and notes, including constraints, finding waits, embargoes and cadence. It is an index, not the source of truth. |
|
||||
| Report review work | `tools/register_check.py` reports due checks, missing grades, selected malformed fields, unknown statuses, waits/defaults, tracked fix state, embargo conditions and review dates, pending handovers and escalations, production re-score flags and regulatory reviews including full policies. `fixed` and `withdrawn` leave the ordinary watch list, but disclosure obligations remain visible; accepted, mitigated and unknown statuses remain watched. |
|
||||
| Record review outcomes | `make checked ARGS="<id> clean\|moved\|defer ..."` updates an eligible record's timestamps, checker, cadence and review history, then regenerates the index. Clean climbs one rung from `instant` toward `1q`; moved resets; defer records a supplied date and reason. Completion of the review procedure and operator authorization for deferral are not enforced by the tool. |
|
||||
| Read remediation records | `make fixes` resolves supported workplan/task IDs in live findings against sibling checkout files under `/home/worsch`, including an archive convention. It reports status, missing tracking and severity-based inactivity windows using the workplan file's last commit date. This is a proxy for recorded activity, not proof of task progress or a deployed fix. |
|
||||
| Record review outcomes | `make checked ARGS="<id> clean\|moved\|defer ..."` updates an eligible record's timestamps, checker, cadence and review history, then regenerates the index. Clean climbs one rung from `instant` toward `1q`; moved resets; defer records a supplied date and reason. Completion of the review procedure and founder authorization for deferral are not enforced by the tool. |
|
||||
| Read remediation records | `make fixes` resolves supported workplan/task IDs in live findings against sibling checkout files under `/home/worsch`, including an archive convention and YAML task blocks with arbitrary field order. It reports status, missing tracking and severity-based inactivity windows using the workplan file's last commit date. This is a proxy for recorded activity, not proof of task progress or a deployed fix. |
|
||||
| Keep closure obligations visible | Live findings can state `closure_condition`, reported independently of source workplan completion. An accepted finding without fix tracking reports its recorded accepter, ending condition, resolvable regulatory determination and review date; missing fields still produce an incomplete-acceptance/missing-tracking warning. This does not verify that acceptance remains valid. |
|
||||
| Check inbox freshness | `tools/inbox_check.py` reads up to 100 State Hub messages and matches names/IDs against live findings checked earlier. It reports potentially newer evidence; it neither interprets nor acknowledges messages. |
|
||||
| Count reporting coverage | `make coverage` counts names appearing as system, fix owner or reporter and compares them with State Hub repo slugs when available. It measures mention coverage, not assessment coverage or assurance. |
|
||||
|
|
@ -52,20 +52,24 @@ or independent scheduler, and does not itself serve `risk.coulomb.social`.
|
|||
|
||||
## Current recorded footprint
|
||||
|
||||
The checkout contains eleven findings: eight fixed, two open and one accepted;
|
||||
The checkout contains fifteen findings: nine fixed, four open and two accepted;
|
||||
three notes; one regulatory determination; four full policies out of thirteen
|
||||
catalogue entries; and three verification records. Both open findings now carry
|
||||
owner workplan tracking and explicit pending runtime/provider evidence. The
|
||||
accepted finding carries a resolvable determination and an overdue substantive
|
||||
review, displayed as a recorded acceptance obligation. Two findings are marked
|
||||
published, eight pending handover, and one embargoed. These are repository
|
||||
records, not a fresh verification of the affected systems or published sites.
|
||||
catalogue entries; and three verification records. Qonto's source-only acceptance
|
||||
is now recorded with its founder decision and ending conditions, retaining the
|
||||
runtime closure path. The three Emergent findings remain open pending owner
|
||||
acceptance/provider evidence; their 0.2.3 local retest has explicit limits.
|
||||
Two findings are marked published, nine pending handover, and four have no
|
||||
completed handover recorded. No finding is currently embargoed. The audit
|
||||
retention acceptance and substantive regulatory reviews remain due. These are
|
||||
repository records, not fresh verification of affected systems or published sites.
|
||||
All seven workplans and 37 tasks are complete; remaining external/recurring
|
||||
obligations are reported without inventing new workplans.
|
||||
|
||||
## Ownership boundary
|
||||
|
||||
The repo owns risk intake records, grading, disclosure decisions, regulatory
|
||||
research retention and escalation/review procedures. Fixes and incident response
|
||||
belong to system owners; publication belongs to `policy-nexus`; canon and
|
||||
estate-level decisions belong to the custodian/operator. It provides neither
|
||||
estate-level decisions belong to the custodian and the founder, exercising `GOVERN @ estate`. It provides neither
|
||||
legal advice nor compliance certification, estate-wide detection, or a delivery
|
||||
gate. Completing the intended remit does not require taking over those roles.
|
||||
|
|
|
|||
188
STATE.md
188
STATE.md
|
|
@ -1,148 +1,74 @@
|
|||
# STATE — risk-nexus
|
||||
|
||||
**Updated:** 2026-09-05
|
||||
**Updated:** 2026-10-03
|
||||
**Domain:** infotech · **Repo:** risk-nexus · **Owner:** the-custodian
|
||||
|
||||
## One-line posture
|
||||
## Current posture
|
||||
|
||||
**The register decides.** Eleven findings graded, three notes below the floor,
|
||||
one regulatory determination and a thirteen-entry legal policy set; every open
|
||||
question carries a default and a date. Today's live set is three: an open
|
||||
medium on qonto-assistant deny-stream completeness, an open low embargoed
|
||||
backup credential, and an accepted medium on audit retention.
|
||||
The register contains 15 graded findings: nine fixed, four open and two
|
||||
accepted; three notes; one regulatory determination; four full policy records
|
||||
and a thirteen-entry policy catalogue. REGISTER.md is the generated finding
|
||||
index. Disclosure is public for all findings; two have recorded publication
|
||||
addresses and nine still carry pending handovers. The e-invoice finding and
|
||||
three Emergent findings have no completed publication handover recorded.
|
||||
|
||||
## Workplans
|
||||
## Workplan audit — 2026-10-03
|
||||
|
||||
| ID | Status | Notes |
|
||||
All seven local workplans and their State Hub projections are `finished`.
|
||||
All 37 local task blocks are `done`. No blocked, active, ready or proposed
|
||||
workplan exists here, and no unfinished local task requires changing a parent
|
||||
to `blocked`. No task or workplan was added for this cleanup.
|
||||
|
||||
| Workplan | Completed scope | Remaining external or recurring obligations |
|
||||
| --- | --- | --- |
|
||||
| `RISK-WP-0001` | **finished** | The four instruments, the index, the first grading. Still waiting on canon kinds until 2026-09-17. |
|
||||
| `RISK-WP-0002` | **finished** | Two findings and five public method instruments handed to `policy-nexus` |
|
||||
| `RISK-WP-0003` | **finished** | Regulatory intake; the legal policy set |
|
||||
| `RISK-WP-0004` | **finished** | Running the register: cadence, verification, inbox-before-grading |
|
||||
| `RISK-WP-0005` | **finished** | The seven gaps from `history/2026-08-21-intent-gap-analysis.md` |
|
||||
| `RISK-WP-0006` | **finished** | Reporting survives a stale index; full policies, embargo deadlines and closed-finding handovers stay visible; regression coverage and State Hub registration. |
|
||||
| `RISK-WP-0007` | **finished** | Owner evidence reconciled, runtime/provider closure conditions recorded, and accepted obligations distinguished from missing engineering fixes. |
|
||||
| RISK-WP-0001 | Grading instruments and register | Canon-kind default already applied; review instruments as due |
|
||||
| RISK-WP-0002 | Initial publication and standing handover route | Later finding publication returns belong to policy-nexus |
|
||||
| RISK-WP-0003 | Regulatory intake and retained policy records | Substantive policy and activation reviews remain due |
|
||||
| RISK-WP-0004 | Review procedure, inbox checks and activity definitions | Live activity deployment/session completion remains unverified |
|
||||
| RISK-WP-0005 | Intake, remediation tracking and gap reporting | Production-transition adoption and external contact delivery remain outside this repo |
|
||||
| RISK-WP-0006 | Resilient reports and obligation visibility | Reporting does not complete the underlying reviews or handovers |
|
||||
| RISK-WP-0007 | Reconcile owner evidence and closure obligations | Deployed captures and provider/owner acceptance remain owner work |
|
||||
|
||||
## Scope correction and reporting repair — 2026-09-05
|
||||
## Loose ends resolved — 2026-10-03
|
||||
|
||||
`SCOPE.md` now describes the checked-in capability. The timestamped assessment
|
||||
in `history/2026-09-05-014333-scope-intent-assessment.md` records the remaining
|
||||
gaps behind the earlier claim that WP-0005 closed them all.
|
||||
RISK-F-0011 now records the founder's 2026-09-22 source-only acceptance
|
||||
(message `61fd83cc-4d21-4a0c-bbef-d91b2e8f129e`). The founder, exercising
|
||||
`GOVERN @ estate`, accepted the bounded source claim, not deployed completeness.
|
||||
The medium grade stays; the stall escalation is answered. Acceptance ends
|
||||
when a deployed qonto stream can be read by King's Guard, or at the next
|
||||
scheduled risk review after 2026-12-31, whichever occurs first.
|
||||
KG-WP-0005-T03 remains the closure path; its owner workplan is already blocked.
|
||||
This is a recorded decision, not renewed acceptance by this register.
|
||||
|
||||
WP-0006 repairs the reporting path: `make check` runs every stage even after
|
||||
failure; `make due` exposes regulatory policies and disclosure obligations;
|
||||
malformed date strings no longer abort reporting; invalid deferrals cannot
|
||||
write; archived completed workplans no longer trigger false inactivity alarms.
|
||||
Eight regression tests pass. The live report now exposes four overdue policies,
|
||||
eight pending publication handovers, and the existing overdue findings.
|
||||
These are visibility repairs, not substantive reviews or evidence of closure.
|
||||
The fix tracker now reads YAML task blocks regardless of field order.
|
||||
Emergent T04 correctly reports `done` and T07 `wait`, rather than `unreadable`.
|
||||
A regression test also prevents reading a status from outside the target block.
|
||||
|
||||
The daily activity source includes those obligations. Its live synchronization
|
||||
and end-to-end delivery remain unverified. External intake, incident clocks,
|
||||
production-transition decisions and estate assessment coverage remain open.
|
||||
RISK-F-0013 (medium) and RISK-F-0014 (low) retain the historical 0.2.1
|
||||
binding/lifecycle defects and local 0.2.3 non-reproduction evidence; owner T07
|
||||
acceptance remains pending. RISK-F-0015 (low) records the two retained Claude
|
||||
owner-routing misses; current-release complete provider evidence remains pending.
|
||||
|
||||
WP-0007 then reconciled the owner evidence in RISK-V-0003. Qonto's source
|
||||
cadence/reconciliation exists; KG-WP-0005-T03 waits for deployed acceptance.
|
||||
RPF-WP-0029 removed the backup fallback; T02 waits for provider invalidation
|
||||
and recovery receipts. Both findings were recorded as moved and remain open
|
||||
at `instant`; F-0010 was closed 2026-09-22 (RISK-RULING-2026-09-22-A), embargo lifted. F-0008's substantive review remains
|
||||
overdue and its existing acceptance terms are displayed explicitly. Ten tests
|
||||
pass. WP-0007 and four tasks are registered in State Hub.
|
||||
## Remaining register obligations
|
||||
|
||||
## The register
|
||||
- RISK-F-0012: qonto-assistant must supply e-invoice owner tracking and the
|
||||
receiving/retention evidence. Existing default date: 2026-10-06.
|
||||
- RISK-F-0008: accepted audit-retention risk; its substantive legal review and
|
||||
real-data activation facts remain due. Existing technical default: 2026-11-17.
|
||||
- Four full policies and RISK-REG-0001 remain overdue for substantive review.
|
||||
This cleanup supplies no new legal research or activation assurance.
|
||||
- Nine finding publication handovers remain pending. A disclosure grade is
|
||||
not publication. No new external message or publication was sent here.
|
||||
- Scheduled-session execution, external contact delivery and production-transition
|
||||
adoption remain unverified; their definitions/routes are completed local work.
|
||||
|
||||
| ID | Sev | Status | Disclosure | Cadence | System |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| `RISK-F-0011` | medium | open | public | instant | qonto-assistant |
|
||||
| `RISK-F-0012` | medium | open | public (handover after workplan) | instant | qonto-assistant |
|
||||
| `RISK-F-0010` | low | fixed | public (handover pending) | 1h | railiance-platform |
|
||||
| `RISK-F-0009` | high | fixed | public | instant | railiance-platform |
|
||||
| `RISK-F-0008` | medium | accepted | public | 1h | audit-core |
|
||||
| `RISK-F-0007` | high | fixed | public | instant | estate |
|
||||
| `RISK-F-0006` | high | fixed | public | instant | railiance-platform |
|
||||
| `RISK-F-0005` | medium | fixed | public | instant | audit-core |
|
||||
| `RISK-F-0004` | medium | fixed | public | instant | tenant-engine |
|
||||
| `RISK-F-0003` | medium | fixed | public | instant | ops-warden |
|
||||
| `RISK-F-0002` | medium | fixed | public | instant | ops-warden |
|
||||
| `RISK-F-0001` | high | fixed | public | instant | flex-auth |
|
||||
Completed implementation tasks stay finished while those recurring or external
|
||||
obligations remain on the register. Findings stay watched until concrete closure
|
||||
or valid acceptance; owner workplan completion alone does not close them.
|
||||
|
||||
Notes below the floor: `RISK-N-0001` noisy neighbours · `RISK-N-0003` found by
|
||||
reading not watching (first observation-sourced finding arrived 2026-09-02,
|
||||
still a note) · `RISK-N-0004` zone lookup.
|
||||
## Verification
|
||||
|
||||
Not one field reads `unset`.
|
||||
|
||||
## How it works
|
||||
|
||||
```
|
||||
findings/*.md source of truth; reporter fields + this repo's grade
|
||||
↓ tools/register_index.py
|
||||
REGISTER.md generated, one screen, never hand-edited
|
||||
|
||||
docs/method/ severity · disclosure · escalation · review
|
||||
verification · dependencies · check-procedure
|
||||
docs/rulings/ why each grade is what it is, dated
|
||||
docs/regulatory/ RISK-REG-0001 + policies/ (13, keyed by activation)
|
||||
docs/verifications/ RISK-V-000N — what this repo checked itself
|
||||
|
||||
make due the work list
|
||||
make fixes state of every tracked fix, from the owner's file
|
||||
make coverage what the register has never heard from
|
||||
make checked ARGS=... record an outcome; moves the cadence rung
|
||||
make check index + malformed + waits + inbox + escalations
|
||||
```
|
||||
|
||||
**Cadence:** `instant → 1h → 8h → 24h → 48h → 96h → 7d → 14d → 1mo → 1q`.
|
||||
Clean climbs one rung; anything moving resets to `instant`. The rung is the
|
||||
stability signal. Operator ruling, 2026-08-20.
|
||||
|
||||
**Scheduled on `activity-core`:** `hourly-register-inbox-watch` (fires only on
|
||||
an unread message) and `daily-register-check-sweep` (07:15, unconditional).
|
||||
Both instruct a session that exercises judgement; neither may record an
|
||||
outcome.
|
||||
|
||||
## Waiting on other people
|
||||
|
||||
| Who | On | Defaults |
|
||||
| --- | --- | --- |
|
||||
| qonto-assistant | deployed-instance capture and King's Guard acceptance under `KG-WP-0005-T03`; source cadence/reconciliation now exist (`F-0011`) | 2026-09-16 |
|
||||
| railiance-platform | whether the age recovery-key taint named in RPF-WP-0029 is a separate exposure to file (raised 2026-09-22 after `F-0010` closed) | — |
|
||||
| the-custodian | canon kinds packet | 2026-09-17 |
|
||||
| audit-core | keyed commitment; `platform-pg` co-residency horizon | 2026-11-17 |
|
||||
|
||||
## Verify
|
||||
|
||||
```
|
||||
make check # everything, including the inbox
|
||||
python3 tools/register_check.py # just the register
|
||||
statehub fix-consistency --repo risk-nexus
|
||||
```
|
||||
|
||||
## What the gap analysis changed
|
||||
|
||||
`history/2026-08-21-intent-gap-analysis.md` graded this repo against its own
|
||||
`INTENT.md` and `RISK-WP-0005` closed all seven gaps the same day.
|
||||
|
||||
- **Fix state is read, not remembered.** `make fixes` resolves every
|
||||
`fix_tracking` against the owning repo's workplan file. Its first run found
|
||||
`RISK-F-0005`'s fix already landed three days earlier, and both of
|
||||
`RISK-F-0002`'s tracked records closed *before that finding was filed*.
|
||||
- **Incident intake exists**, with `first_observed` starting the 72-hour clock
|
||||
in `RISK-POL-0005` and escalation that is not batched.
|
||||
- **Public records have permanent addresses** — two findings and five method
|
||||
instruments publish through `policy-nexus`; this repo remains their source.
|
||||
- **Coverage has a number:** `make coverage` — 7 of 117 registered repos have
|
||||
ever appeared in a finding. The other 110 are unknown, not clean.
|
||||
|
||||
## Known conditions
|
||||
|
||||
- **Earlier workplans were not indexed in the hub.** C-06 on the earlier set: this instance was
|
||||
not the identifier registrar. Needs a run with `STATEHUB_REGISTRAR=1` on the
|
||||
production instance. WP-0006 now has a registered Hub workplan and five task
|
||||
UUIDs; this implementation did not repair historical workplan registration.
|
||||
- **C-31** fires on `RISK-F-` ids. This is expected noise for this repo: the RISK-WP-0001 default was applied 2026-09-22 after the-custodian did not answer by 2026-09-17. The register no longer treats it as a gap it can close. If canon later registers the kinds, the warning clears on its own.
|
||||
Defaults 2026-09-17.
|
||||
- **OpenBao is unverifiable from here** (403). Every grade touching an OpenBao
|
||||
policy is a grade on a document, and says so.
|
||||
- **`RISK-F-0011` is due at `instant`.** Graded this sitting; not clean-checked
|
||||
in the same sitting. The next pass climbs it if nothing moved.
|
||||
`make test`: 14 tests pass. `make fixes` resolves the Emergent task states.
|
||||
`make check` checks index, register obligations and inbox; overdue work remains
|
||||
visible. `statehub fix-consistency` reconciles the seven workplans and pushes.
|
||||
Historical records retain the provenance of file evidence versus live reads.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
id: RISK-F-0011
|
||||
type: finding
|
||||
title: "qonto-assistant audit.deny stream completeness is not established"
|
||||
status: open
|
||||
status: accepted
|
||||
owner: risk-nexus
|
||||
reported_by: kings-guard
|
||||
reported_via: gate-house
|
||||
|
|
@ -30,17 +30,23 @@ publication_subtitle: "A live deny was observed on qonto-assistant, but nothing
|
|||
revision: "graded-1"
|
||||
last_reviewed: "2026-09-02"
|
||||
review_interval: 6m
|
||||
escalation: pending
|
||||
escalation: none
|
||||
escalation_trigger: 5
|
||||
escalation_status: sent
|
||||
escalation_status: answered
|
||||
escalation_sent: "2026-09-22"
|
||||
last_checked: "2026-09-22T06:13:33Z"
|
||||
next_check: "2026-09-22T06:13:33Z"
|
||||
escalation_answered: "2026-09-22"
|
||||
accepted_by: "the founder, exercising GOVERN @ estate"
|
||||
accepted_on: "2026-09-22"
|
||||
acceptance_recorded: "2026-10-03"
|
||||
acceptance_basis: "Hub decision 61fd83cc-4d21-4a0c-bbef-d91b2e8f129e; QONTO-WP-0005 source-only evidence"
|
||||
accepted_until: "qonto-assistant runs as a deployed instance with a stream endpoint kings-guard can read, or the next scheduled risk review after 2026-12-31, whichever happens first"
|
||||
last_checked: "2026-10-03T17:08:27Z"
|
||||
next_check: "2026-10-03T17:08:27Z"
|
||||
cadence: instant
|
||||
clean_streak: 0
|
||||
graded_by: risk-nexus
|
||||
ruling: RISK-RULING-2026-09-02-A
|
||||
checked_by: "worsch"
|
||||
checked_by: "codex/risk-nexus"
|
||||
---
|
||||
|
||||
# RISK-F-0011 — qonto-assistant audit.deny stream completeness is not established
|
||||
|
|
@ -166,8 +172,29 @@ escalation went to the-custodian today and asks who authorizes and runs the
|
|||
deployed capture. Default if unanswered by 2026-09-29: raise once more, then
|
||||
record the stall as accepted by silence. The grade does not change.
|
||||
|
||||
## Founder acceptance reconciled — 2026-10-03
|
||||
|
||||
The founder, exercising `GOVERN @ estate`, chose source-only acceptance on
|
||||
2026-09-22 in Hub message `61fd83cc-4d21-4a0c-bbef-d91b2e8f129e`.
|
||||
The register had left that answer unread; this entry records the decision now
|
||||
without backdating the review. Status is **accepted**, medium, public; the
|
||||
stall escalation is answered. This is deliberate bounded acceptance, not
|
||||
acceptance inferred from silence and not deployed-instance completeness.
|
||||
|
||||
Acceptance ends at the first of: a deployed qonto-assistant instance exposing
|
||||
a stream King's Guard can read; or the next scheduled risk review after
|
||||
2026-12-31, which must re-check whether a runtime owner exists. The finding
|
||||
then returns to active remediation. KG-WP-0005-T03 remains the closure path.
|
||||
On 2026-10-03 the owner's recorded source workplan QONTO-WP-0005 is finished;
|
||||
King's Guard's workplan is blocked and T03 is waiting for a runtime-owner
|
||||
capture/endpoint. These are checkout records, not a live deployment read.
|
||||
No acceptance-ending event is established by those records.
|
||||
|
||||
The review ladder continues while accepted; this change earns no clean rung.
|
||||
|
||||
## Reviews
|
||||
|
||||
- **2026-09-02** — graded from the Gate House intake, the named conformance review, and a current-source check of qonto-assistant. Local lockout is in-process; the emitted deny stream still has no cadence or reconciliation view. Cadence starts at instant.
|
||||
- **2026-09-05** — not clean: Reviewed owner notice, cadence/logger/endpoint and KG-WP-0005; source remediation exists, deployed-instance acceptance remains pending under KG-WP-0005-T03. See RISK-V-0003. Cadence instant → instant; checked again immediately.
|
||||
- **2026-09-22** — not clean: Default applied: KG-WP-0005-T03 still wait, no deployed capture; stall recorded; escalated to the-custodian under trigger 5 Cadence instant → instant; checked again immediately.
|
||||
- **2026-10-03** — not clean: Recorded founder source-only acceptance dated 2026-09-22; escalation answered; deployed acceptance still pending under KG-WP-0005-T03 Cadence instant → instant; checked again immediately.
|
||||
|
|
|
|||
|
|
@ -90,7 +90,10 @@ Owner tracking read directly:
|
|||
T04 `done`, T07 `wait`, workplan `blocked` on 2026-10-03. The current fix
|
||||
tracker reports these task IDs as `unreadable` because their task blocks place
|
||||
`title` between `id` and `status`; this filing uses the explicit file read,
|
||||
not that parser result as evidence of absent tracking.
|
||||
not that parser result as evidence of absent tracking. The 2026-10-03 cleanup
|
||||
under RISK-WP-0005-T01 subsequently repaired the parser; `make fixes` now
|
||||
reports T04 `done` and T07 `wait`. This reporting repair supplies no additional
|
||||
remediation or provider acceptance.
|
||||
|
||||
Reporter evidence (read from the sibling checkout):
|
||||
|
||||
|
|
|
|||
|
|
@ -87,7 +87,10 @@ Owner tracking read directly:
|
|||
T04 `done`, T07 `wait`, workplan `blocked` on 2026-10-03. The current fix
|
||||
tracker reports these task IDs as `unreadable` because their task blocks place
|
||||
`title` between `id` and `status`; this filing uses the explicit file read,
|
||||
not that parser result as evidence of absent tracking.
|
||||
not that parser result as evidence of absent tracking. The 2026-10-03 cleanup
|
||||
under RISK-WP-0005-T01 subsequently repaired the parser; `make fixes` now
|
||||
reports T04 `done` and T07 `wait`. This reporting repair supplies no additional
|
||||
remediation or provider acceptance.
|
||||
|
||||
Reporter evidence (read from the sibling checkout):
|
||||
|
||||
|
|
|
|||
|
|
@ -88,7 +88,10 @@ Owner tracking read directly:
|
|||
T04 `done`, T07 `wait`, workplan `blocked` on 2026-10-03. The current fix
|
||||
tracker reports these task IDs as `unreadable` because their task blocks place
|
||||
`title` between `id` and `status`; this filing uses the explicit file read,
|
||||
not that parser result as evidence of absent tracking.
|
||||
not that parser result as evidence of absent tracking. The 2026-10-03 cleanup
|
||||
under RISK-WP-0005-T01 subsequently repaired the parser; `make fixes` now
|
||||
reports T04 `done` and T07 `wait`. This reporting repair supplies no additional
|
||||
remediation or provider acceptance.
|
||||
|
||||
Reporter evidence (read from the sibling checkout):
|
||||
|
||||
|
|
|
|||
|
|
@ -129,6 +129,21 @@ class ReviewWorkflowTests(unittest.TestCase):
|
|||
self.assertIn("finished [archived]", report)
|
||||
self.assertNotIn("UNCHANGED", report)
|
||||
|
||||
def test_task_tracking_reads_reordered_fields_without_crossing_blocks(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
path = pathlib.Path(directory) / "workplan.md"
|
||||
path.write_text('---\nid: TEST-WP-0001\nstatus: blocked\n---\n'
|
||||
'```task\nid: TEST-WP-0001-T01\n'
|
||||
'title: Implement the fix\npriority: high\nstatus: "done"\n```\n'
|
||||
'```task\nstatus: wait\ntitle: Accept runtime evidence\n'
|
||||
'id: TEST-WP-0001-T02\n```\n'
|
||||
'```task\nid: TEST-WP-0001-T03\n```\n'
|
||||
'status: done\n')
|
||||
self.assertEqual(fix_tracker.task_status(path, "TEST-WP-0001-T01"), "done")
|
||||
self.assertEqual(fix_tracker.task_status(path, "TEST-WP-0001-T02"), "wait")
|
||||
self.assertIsNone(fix_tracker.task_status(path, "TEST-WP-0001-T03"))
|
||||
self.assertIsNone(fix_tracker.task_status(path, "TEST-WP-0001-T04"))
|
||||
|
||||
def test_accepted_obligation_requires_a_resolvable_basis_and_review(self):
|
||||
finding = dict(id="RISK-F-9999", status="accepted", fix_tracking="unset",
|
||||
accepted_by="operator", accepted_until="real data arrives",
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import datetime as dt
|
|||
import pathlib
|
||||
import re
|
||||
import subprocess
|
||||
import yaml
|
||||
|
||||
import register_lib as lib
|
||||
|
||||
|
|
@ -48,8 +49,16 @@ def last_commit(path: pathlib.Path) -> dt.datetime | None:
|
|||
|
||||
|
||||
def task_status(path: pathlib.Path, task_id: str) -> str | None:
|
||||
m = re.search(rf"id: {re.escape(task_id)}\s*\nstatus: (\w+)", path.read_text(encoding="utf-8"))
|
||||
return m.group(1) if m else None
|
||||
for block in re.findall(r"^```task\s*\n(.*?)^```\s*$",
|
||||
path.read_text(encoding="utf-8"), re.M | re.S):
|
||||
try:
|
||||
task = yaml.safe_load(block)
|
||||
except yaml.YAMLError:
|
||||
continue
|
||||
if isinstance(task, dict) and task.get("id") == task_id:
|
||||
status = task.get("status")
|
||||
return status if isinstance(status, str) else None
|
||||
return None
|
||||
|
||||
|
||||
def resolve(fix_tracking: str) -> list[dict]:
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ status: finished
|
|||
owner: the-custodian
|
||||
topic_slug: risk-nexus
|
||||
created: "2026-08-21"
|
||||
updated: "2026-08-21"
|
||||
updated: "2026-10-03"
|
||||
depends_on_workplans:
|
||||
- RISK-WP-0001
|
||||
- RISK-WP-0004
|
||||
|
|
@ -270,3 +270,13 @@ the task, not only here.
|
|||
- Whether findings should be reported to the estate by anything other than
|
||||
their owners — monitoring, coverage sweeps — stays a note until evidence
|
||||
makes it a finding.
|
||||
|
||||
## Loose-end review — 2026-10-03
|
||||
|
||||
Under existing T01, repaired task status reading: YAML task blocks permit
|
||||
`title` and other fields between `id` and `status`, quoted values and reordered
|
||||
keys. Emergent T04/T07 now resolve as done/wait. A regression ensures a missing
|
||||
status cannot be borrowed from another block or prose. All 14 tests pass.
|
||||
No tasks were added or reopened. All seven local workplans and their Hub
|
||||
projections are finished; all 37 local tasks are done. External adoption,
|
||||
contact provisioning and recurring reviews remain the stated residuals.
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ status: finished
|
|||
owner: the-custodian
|
||||
topic_slug: custodian
|
||||
created: "2026-09-05"
|
||||
updated: "2026-09-05"
|
||||
updated: "2026-10-03"
|
||||
depends_on_workplans:
|
||||
- RISK-WP-0006
|
||||
state_hub_workstream_id: "ac12733f-3f4b-5c7b-aee7-7115b9c4db72"
|
||||
|
|
@ -111,3 +111,15 @@ Still external or unverified: runtime capture/observer acceptance, provider
|
|||
invalidation/recovery receipts, acceptance-trigger facts and legal reviews,
|
||||
external contact delivery and scheduled-session completion. Source searches
|
||||
establish no stronger conclusion. No messages or acknowledgements were sent.
|
||||
|
||||
## Loose-end review — 2026-10-03
|
||||
|
||||
Under existing T01/T04, reconciled the founder's 2026-09-22 response for
|
||||
RISK-F-0011, previously unread. Recorded bounded source-only acceptance,
|
||||
answered the stall escalation, preserved the medium grade and KG-WP-0005-T03
|
||||
runtime closure path, and reset cadence with a moved check. The founder,
|
||||
exercising `GOVERN @ estate`, ends acceptance on a readable deployed instance
|
||||
or the next scheduled risk review after 2026-12-31, whichever occurs first.
|
||||
QONTO-WP-0005 is finished; KG-WP-0005 is blocked with T03 waiting. This is a
|
||||
checkout reconciliation, not live runtime acceptance. Updated STATE/SCOPE and
|
||||
reconciled inbox handling. No local blocked tasks remain; no new tasks/plans.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue