From 4fc48508acec415c7584a32e1a3ff32b86dd202d Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Tue, 25 Aug 2026 20:59:21 +0000 Subject: [PATCH] docs: update project documentation for v1.70.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ARCHITECTURE.md: the preamble section now describes the v1.70 runtime — the rendered {{PREAMBLE}} block invokes bin/gstack-skill-start and reads STATUS lines, gstack-skill-end logs telemetry, and one-time onboarding text arrives as gated GSTACK_INSTRUCTION blocks instead of riding in every render. Co-Authored-By: Claude Fable 5 --- ARCHITECTURE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index e1860979b..199888187 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -296,7 +296,7 @@ This is structurally sound — if a command exists in code, it appears in docs. ### The preamble -Every skill starts with a `{{PREAMBLE}}` block that runs before the skill's own logic. It handles five things in a single bash command: +Every skill starts with a `{{PREAMBLE}}` block that runs before the skill's own logic. Since v1.70.0.0 the rendered block is a thin fence that invokes `bin/gstack-skill-start` (the consolidated preamble runtime — it replaced ~18KB of inline bash per tier-2+ skill) and reads back `KEY: value` STATUS lines that the skill prose branches on; `bin/gstack-skill-end` logs telemetry at skill end. One-time onboarding and consent text is emitted as session-bound `GSTACK_INSTRUCTION` blocks only when a runtime gate actually fires, instead of rendering in every skill. The startup still handles five things: 1. **Update check** — calls `gstack-update-check`, reports if an upgrade is available. 2. **Session tracking** — touches `~/.gstack/sessions/$PPID` and counts active sessions (files modified in the last 2 hours). When 3+ sessions are running, all skills enter "ELI16 mode" — every question re-grounds the user on context because they're juggling windows.