ledger
1 file changed,
+2
−0
.superpowers/sdd/2026-08-23-idear/progress.md+2 −0
diff --git a/.superpowers/sdd/2026-08-23-idear/progress.md b/.superpowers/sdd/2026-08-23-idear/progress.md| index 5c6f62b..42fb615 100644 |
| --- a/.superpowers/sdd/2026-08-23-idear/progress.md |
| +++ b/.superpowers/sdd/2026-08-23-idear/progress.md |
| @@ -127,3 +127,5 @@ Fable Ruling F6: SKILL.md is 19,564 bytes against the 17 KB bar it cites, and re |
| Fable Ruling F7: no audit trail for role changes, deactivations or transfers. Out of scope to build; state the absence in the spec's "what this does not claim" so an operator layers it rather than assuming it. |
| Fable Ruling F8: three minors — addressOf's "@" heuristic needs a SKILL note that a custom Config.Subject must preserve the password=no-@ / keymail=@ shape; field() never calls MultipartForm.RemoveAll; a password orphan claiming an empty roster gets a blank Email. |
| Remediation split by capability: opus takes F1/F2/F4 (security-critical API + transactional change + break-glass SQL that must actually work); sonnet takes F3-docs/F5/F6/F7/F8 afterwards, sequenced to avoid both editing SKILL.md at once. |
| +Fable remediation (code): DONE 36fecb9 — F1 optional EmailForSubject resolver + honest doc in both configurations, F2 Invite supersedes in one transaction, F4 rebind break-glass SQL. NOTABLE: example/app_test.go now READS the break-glass SQL out of SKILL.md and executes it against a real DB, then signs in over HTTP as the rebound subject and runs an Owner-only action. The documented recovery is now a gated artifact that cannot rot silently. |
| +Fable remediation (docs): dispatched (sonnet). |