Skip to content

Commit 62816d9

Browse files
V48 Gate 3 (specification-implementation): obfuscations guidance is a placeholder, never a prefilled value
Conformance repair under the examples-are-placeholders presentation law (2026-07-04): the /deposits obfuscations field initialized to its guidance sentence as an actual VALUE, so every dispatch sent the boilerplate to the pipeline as depositor Obfuscations input (and the input-comprehension agent comprehended it as real instructions). The field now starts empty with the guidance as the textarea placeholder; only depositor-authored text reaches synthesis. The deposit_synthesis_dispatched analytics event simplifies to plain non-emptiness (hasObfuscations), and the analytics spec note wording follows. Verified: uapi tsc 0; depositPageClient + depositRouteModel + productAnalytics suites green (18/18). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 9b39e3c commit 62816d9

2 files changed

Lines changed: 10 additions & 13 deletions

File tree

BITCODE_SPEC_V48_NOTES.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -671,8 +671,9 @@ Rich product analytics over the commercial surfaces, in two layers:
671671
- **Depositing funnel events** (the Gate-3 instrumentation):
672672
`deposit_source_selected` (provider + branch/commit pin shape; once per
673673
distinct repository per mount), `deposit_synthesis_dispatched`
674-
(obfuscations-customized boolean [authored beyond the untouched default
675-
guidance], protected-exclusion count, demand-signal count),
674+
(obfuscations-authored boolean [the field starts EMPTY — its guidance is a
675+
PLACEHOLDER per the examples-are-placeholders law, so only depositor-authored
676+
text reaches synthesis], protected-exclusion count, demand-signal count),
676677
`deposit_synthesis_completed` (optionCount + durationMs),
677678
`deposit_synthesis_failed` (stage `dispatch` | `run` | `resume` +
678679
durationMs), `deposit_option_review` (decision enum + admitted),

uapi/app/deposits/DepositPageClient.tsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,10 @@ function readStringField(source: unknown, ...keys: string[]) {
128128
return null;
129129
}
130130

131-
// The obfuscations field's initial guidance text. Named so the dispatch
132-
// analytics can tell "left the guidance untouched" apart from "authored real
133-
// obfuscations" without carrying any of the text off-surface.
134-
const DEPOSIT_OBFUSCATIONS_DEFAULT =
131+
// Guidance for the obfuscations field. A PLACEHOLDER, never a prefilled
132+
// value (the "examples are placeholders" presentation law): only text the
133+
// depositor actually authors reaches the synthesis as Obfuscations input.
134+
const DEPOSIT_OBFUSCATIONS_PLACEHOLDER =
135135
"Note anything to obfuscate or withhold from the synthesized options: internal names, proprietary framing, or sensitive specifics the source-safe AssetPacks should avoid surfacing.";
136136

137137
export default function DepositPageClient() {
@@ -164,9 +164,7 @@ export default function DepositPageClient() {
164164
const [runsLoadError, setRunsLoadError] = useState<string | null>(null);
165165
const [repositoryContext, setRepositoryContext] =
166166
useState<TerminalRepositoryContextState | null>(null);
167-
const [obfuscations, setObfuscations] = useState(
168-
DEPOSIT_OBFUSCATIONS_DEFAULT,
169-
);
167+
const [obfuscations, setObfuscations] = useState("");
170168
// Picked from the repository file tree (selected repo·branch·commit);
171169
// hints and exclusions are mutually exclusive path sets.
172170
const [sourcePathHints, setSourcePathHints] = useState<string[]>([]);
@@ -1028,10 +1026,7 @@ export default function DepositPageClient() {
10281026
trackProductEvent({
10291027
name: "deposit_synthesis_dispatched",
10301028
data: {
1031-
// "Customized" — authored beyond the untouched default guidance.
1032-
hasObfuscations:
1033-
Boolean(effectiveInstructions.trim()) &&
1034-
effectiveInstructions.trim() !== DEPOSIT_OBFUSCATIONS_DEFAULT,
1029+
hasObfuscations: Boolean(effectiveInstructions.trim()),
10351030
protectedExclusionCount: protectedIpExclusions.length,
10361031
demandSignalCount:
10371032
depositRouteInput.depositoryDemandSignals.length +
@@ -1655,6 +1650,7 @@ export default function DepositPageClient() {
16551650
onChange={(event) =>
16561651
setObfuscations(event.target.value)
16571652
}
1653+
placeholder={DEPOSIT_OBFUSCATIONS_PLACEHOLDER}
16581654
className="mt-2 min-h-[8rem] w-full border border-white/10 bg-black/30 px-3 py-3 text-sm leading-6 text-neutral-100 outline-none transition focus:border-emerald-300/35"
16591655
/>
16601656
</div>

0 commit comments

Comments
 (0)