Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

v7.40.4: `lifeos -s <missing file>` launches Claude without the constitution and without any warning

Chiusa Adatta ai principianti
#2,255 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 11 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
bun, typescript
Ambito
cli

Direzione di ricerca

Inizia in LIFEOS/TOOLS/lifeos.ts alle righe 504 e 705, quindi esegui la riproduzione fornita di stub-claude per i percorsi di system-prompt esistenti e mancanti. Verifica che sia le invocazioni interattive sia quelle one-shot non si avviino più silenziosamente senza la costituzione; il lavoro è completato quando il comportamento scelto di rifiuto o avviso indica il percorso mancante ed è coerente in entrambi i percorsi.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Version

LifeOS 7.40.4 (tag commit be9e8ef) / launcher (LIFEOS/TOOLS/lifeos.ts)

What is broken

The lifeos launcher is the documented way to load the constitution (INSTALL.md step 7: "The launch command loads the constitution — don't skip it"). When the system-prompt file passed with -s does not exist, the launcher silently omits --append-system-prompt-file, still prints the full LifeOS banner, and starts claude without the constitution. Nothing on stdout or stderr says the constitution was not loaded, so the session looks like LifeOS but has no constitutional layer. This conflicts with the doctrine that missing capabilities "must degrade loudly, not silently" (GETTING-STARTED.md).

Where (file:line)

LIFEOS/TOOLS/lifeos.ts:504: if (existsSync(systemPromptFile)) { args.push("--append-system-prompt-file", systemPromptFile); } has no else branch. By source, the one-shot prompt path at :705 uses the same pattern, and the no--s case (default ~/.claude/LIFEOS/LIFEOS_SYSTEM_PROMPT.md missing) takes the same branch; neither variant was run.

Repro on a clean tree
# any 7.40.4 install; a stand-in `claude` records the arguments it receives
stub="$(mktemp -d)"
cat > "$stub/claude" <<EOF
#!/bin/sh
printf '%s\n' "\$@" > "$stub/argv"
EOF
chmod +x "$stub/claude"

# control: existing file -> flag passed
PATH="$stub:$PATH" bun ~/.claude/LIFEOS/TOOLS/lifeos.ts -s ~/.claude/LIFEOS/LIFEOS_SYSTEM_PROMPT.md; cat "$stub/argv"
# --append-system-prompt-file
# /home/you/.claude/LIFEOS/LIFEOS_SYSTEM_PROMPT.md

# missing file -> banner printed, no flag, no warning
rm -f "$stub/argv"
PATH="$stub:$PATH" bun ~/.claude/LIFEOS/TOOLS/lifeos.ts -s /nonexistent/prompt.md; cat "$stub/argv"
# (empty: claude was started with no arguments)
Negative control

On unpatched 7.40.4 (Ubuntu 26.04 arm64, bun 1.4.2), the second invocation prints the LifeOS banner and starts claude with an empty argument list and no warning, while the first (control) invocation passes --append-system-prompt-file <path>. A mistyped path in a hand-written alias, or an install whose LIFEOS/ tree moved, therefore launches an un-constituted session that looks like LifeOS.

Suggested fix

Untested: when the system-prompt file does not exist, refuse to launch (or print a prominent warning naming the missing path), in both the interactive and prompt paths.

Before submitting
  • I searched open and closed issues for this defect.
  • The repro runs against a clean tree of the version above, not against my modified install.
  • I removed personal data from the pasted output — real names, absolute home paths, tokens, my own content.
Lingua principale
TypeScript
Stelle
19.4k
Fork
2.5k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di danielmiessler/LifeOS

Tutte le issue di danielmiessler/LifeOS

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.