Copy polish: posh Reginald, no em-dashes, no self-referential clutter #63
@@ -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 }}>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 }}>
|
||||
|
||||
@@ -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>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user