danielmiessler / danielmiessler/LifeOS
CONSTITUTIONAL No.2 self-check inverts on question 3: a fully verified claim answers 'no' and fails the gate
- Dominant language
- TypeScript
- Stars
- 19k
- Forks
- 2.5k
- Avg merge
- 8d 17h
- Merged PRs (30d)
- 1
Description
### Version
LifeOS 7.40.4 / System Prompt 3.7.3
### What is broken
The CONSTITUTIONAL No.2 self-check has a polarity bug on its third question. Questions 1 and 2 are phrased so that a compliant answer is "yes". Question 3 is phrased so that a compliant answer is "no". All three then run through one gate that reads `Any no → not done`. Evaluated literally, work that is fully verified answers no to question 3 and is therefore classified as not done, while work that still contains a "should work" answers yes to all three and passes. The gate is inverted for exactly the question that names the thing the section exists to forbid.
Question 2 has a milder version of the same problem. `Web-facing → Interceptor screenshot taken?` has no compliant answer for work that is not web-facing: the honest answer is N/A, and a strict reading of "any no" fails it.
Practical impact is small, because the two sentences immediately below the check are unambiguous ("Never claim completion without tool-based evidence", "'Should work' is forbidden") and a model resolves the list by intent rather than by boolean evaluation. It is worth fixing anyway on two grounds. The constitutional tier is the one place the prompt is asking for literal reading. And a self-check whose only literally-passing state is the failing one teaches the reader to skim self-checks.
### Where (file:line)
`LIFEOS/LIFEOS_SYSTEM_PROMPT.md:94`, and the same line in the vendored install payload at `skills/LifeOS/install/LIFEOS/LIFEOS_SYSTEM_PROMPT.md:92`, so a fresh install and an updated install both carry it.
### Repro on a clean tree
```shell
# Against a clean 7.40.4 tree
grep -n 'Any "should work"' LIFEOS/LIFEOS_SYSTEM_PROMPT.md
# 94:Self-check before any done-claim: 1. Tool evidence in hand for every claim? 2. Web-facing → Interceptor screenshot taken? 3. Any "should work" left anywhere? Any no → not done.
grep -n 'Any "should work"' skills/LifeOS/install/LIFEOS/LIFEOS_SYSTEM_PROMPT.md
# 92: (identical line)
```
Now evaluate the three questions against a piece of work that is genuinely, fully verified: tool evidence in hand, screenshot taken, no "should work" anywhere.
### Negative control
Stated without reference to any fix.
On unpatched 7.40.4, a fully verified done-claim answers the three questions **yes, yes, no**. The gate reads `Any no → not done`, so it returns **not done**.
The same gate on a claim that still has an unverified "should work" in it answers **yes, yes, yes**, and returns **done**.
The check therefore passes the failing case and fails the passing case on question 3. No fix is referenced above; the inversion is visible from the shipped line alone.
Third-question answers, unpatched:
| Work state | Q3 answer | Gate verdict | Correct verdict |
|---|---|---|---|
| Fully verified, no "should work" | no | not done | done |
| Unverified, "should work" remains | yes | done | not done |
### Suggested fix
Flip the two questions so all three pass on "yes", leaving the gate alone. One line:
```diff
-Self-check before any done-claim: 1. Tool evidence in hand for every claim? 2. Web-facing → Interceptor screenshot taken? 3. Any "should work" left anywhere? Any no → not done.
+Self-check before any done-claim: 1. Tool evidence in hand for every claim? 2. If web-facing, Interceptor screenshot taken? 3. Every "should work" eliminated? Any no → not done.
```
Applied and running locally on 7.40.4, both copies. It is a prose change with no code path, so "tested" means the line now reads consistently, not that a suite went green.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the matching self-check lines in LIFEOS/LIFEOS_SYSTEM_PROMPT.md:94 and skills/LifeOS/install/LIFEOS/LIFEOS_SYSTEM_PROMPT.md:92, using the provided grep command to confirm both copies. Compare the three question forms with the shared gate and verify that the corrected wording is identical in both files; done means a fully verified claim passes while an unresolved “should work” claim fails.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 86/100