Copy polish: posh Reginald, no em-dashes, no self-referential clutter #63

Merged
christian merged 3 commits from chore/posh-reginald-no-emdashes into main 2026-07-12 02:03:53 +00:00
21 changed files with 76 additions and 94 deletions
Showing only changes of commit 2f4a0a114a - Show all commits

View File

@@ -112,7 +112,7 @@ export function CalibrationScreen({ onBack, data }: { onBack: () => void; data?:
<circle key={i} cx={X(e) + ((i % 5) - 2) * 3} cy={Y(a)} r="3" fill="var(--accent)" opacity="0.55" />
))}
</svg>
<p style={{ font: 'var(--text-caption)', color: 'var(--ink-3)', margin: '8px 0 0' }}>estimated (x) vs actual days (y) · actuals inferred from git events, never tracked</p>
<p style={{ font: 'var(--text-caption)', color: 'var(--ink-3)', margin: '8px 0 0' }}>estimated (x) vs actual days (y)</p>
</Card>
<div style={{ display: 'flex', flexDirection: 'column', gap: 14 }}>

View File

@@ -289,7 +289,7 @@ export function CaptureScreen({ onDone }: { onDone: () => void }) {
{live ? filedCount : tickets.length} issues opened in gitea with <span style={{ font: 'var(--text-data)' }}>est/*</span> and <span style={{ font: 'var(--text-data)' }}>p/*</span> labels, nothing else touched.
</p>
<p style={{ font: 'var(--text-agent)', color: 'var(--ink-2)', margin: 0 }}>
Elapsed {clock}, under budget. No bot comments, no synthetic issues; your repo remains yours.
Elapsed {clock}.
</p>
<Button iconRight="arrow-right" onClick={onDone}>To morning service</Button>
</div>

View File

@@ -96,7 +96,7 @@ export function ConnectScreen({ onConnected, existing }: { onConnected: () => vo
</span>
</div>
<p style={{ font: 'var(--text-body)', color: 'var(--ink-2)', margin: '0 0 18px' }}>
Connect your Gitea. Your token is stored encrypted on this machine and never leaves it.
Connect your Gitea.
</p>
<div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>

View File

@@ -115,10 +115,6 @@ export function DirectivesScreen() {
</div>
</Card>
)}
<p style={{ font: 'var(--text-caption)', color: 'var(--ink-3)', margin: 0 }}>
Entries are never edited. Corrections are new entries; the ledger remembers everything, politely.
</p>
</div>
)
}

View File

@@ -335,12 +335,6 @@ export function IssueScreen({
</div>
)}
</div>
{/* provenance note */}
<div style={{ padding: '10px 20px 14px', borderTop: '1px solid var(--line-1)' }}>
<p style={{ font: 'var(--text-caption)', color: 'var(--ink-3)', margin: 0 }}>
Lives in pm-state. Your repo never sees any of it.
</p>
</div>
</div>
</Card>
</div>

View File

@@ -155,11 +155,11 @@ export function OnboardingScreen({ onConnected }: { onConnected: (dest: 'focus'
<Frame footer={<Button iconRight="arrow-right" onClick={() => setStep(1)}>Begin</Button>}>
<h1 style={{ font: 'var(--text-title)', color: 'var(--ink-1)', margin: 0 }}>Good morning.</h1>
<p style={{ font: 'var(--text-agent-lg)', color: 'var(--ink-2)', margin: 0 }}>
I am Reginald, your project manager. I interview you rather than trouble you with forms, I forecast in
honest ranges, and I never attempt the arithmetic myself; there is a scheduler for that.
I am Reginald, your project manager. I interview you rather than trouble you with forms, and I forecast
in honest ranges.
</p>
<p style={{ font: 'var(--text-body)', color: 'var(--ink-2)', margin: 0 }}>
Your plans reside in your own Gitea as ordinary issues and labels. Dismiss me, and nothing human is lost.
Your plans reside in your own Gitea as ordinary issues and labels.
</p>
</Frame>
) : null}
@@ -196,7 +196,7 @@ export function OnboardingScreen({ onConnected }: { onConnected: (dest: 'focus'
type="password"
value={token}
placeholder="gitea PAT"
hint="Scopes: repo, issue. Nothing more."
hint="Scopes: repo, issue."
onChange={(e) => {
setToken(e.target.value)
setDiscovery('idle')
@@ -352,14 +352,11 @@ export function OnboardingScreen({ onConnected }: { onConnected: (dest: 'focus'
))}
</div>
</div>
<p style={{ font: 'var(--text-caption)', color: 'var(--ink-3)', margin: 0 }}>
No bot comments, no body frontmatter, no synthetic issues, ever. Labels are the only footprint.
</p>
</Frame>
) : null}
</div>
<span style={{ font: '400 11px var(--font-mono)', color: 'var(--ink-3)' }}>first run · everything reversible</span>
<span style={{ font: '400 11px var(--font-mono)', color: 'var(--ink-3)' }}>first run</span>
</div>
)
}

View File

@@ -76,7 +76,6 @@ export function SettingsScreen({
<Icon name="layers" size={12} />
sidecar: {connection.pmStateRepo ?? `${connection.repo}-pm-state`}
</Row>
<Note>Your token is stored encrypted on this machine. Delete the sidecar and resync; no truth is lost.</Note>
<Row style={{ gap: 8, marginTop: 2 }}>
<Button variant="secondary" size="sm" icon="settings-2" onClick={onReconnect}>
Reconfigure
@@ -105,11 +104,7 @@ export function SettingsScreen({
Reconciles on launch and after every write
</span>
</Row>
<Note>
The board is a rebuildable index over gitea, the durable truth. When gitea is unreachable the last
snapshot is served from cache (the rail's dot turns red), and the next successful reconcile supersedes it.
No webhooks, no polling: reads are on demand.
</Note>
<Note>Offline, the board reads from the last cached snapshot.</Note>
</div>
</Card>
@@ -135,8 +130,7 @@ export function SettingsScreen({
</Row>
)}
<Note>
An OpenAI-compatible endpoint (set it in Reconfigure). Reginald names, negotiates and explains; it never
does the arithmetic; the scheduler and Monte Carlo do that.
An OpenAI-compatible endpoint (set it in Reconfigure).
</Note>
</div>
</Card>
@@ -154,7 +148,7 @@ export function SettingsScreen({
))}
<Tag label="deadline/hard" />
</Row>
<Note>Fixed sets, human-meaningful, visible in gitea. Not configurable: that is rather the point.</Note>
<Note>The fixed label vocabulary, visible in gitea.</Note>
</div>
</Card>

View File

@@ -198,9 +198,6 @@ export function ChatPanel({ onOpenDirectives, offline, onApplyChange }: ChatPane
<Icon name="send" size={14} />
</button>
</div>
<p style={{ font: 'var(--text-caption)', color: 'var(--ink-3)', margin: '8px 2px 0' }}>
Chat is the write-path. Destructive changes are proposed, never assumed.
</p>
</div>
</aside>
)