export declare const NAME_LOCK = "# /name-lock \u2014 Name Lock Gate\n\n## What This Does\n\nConsolidates every naming decision into a single locked document BEFORE any asset creation begins. The Name Lock Registry becomes a hard dependency for /deploy, /product, and /passive-deploy. No customer-facing asset gets built until names are locked.\n\n## The Problem This Solves\nNames get created implicitly during /build-blocks (Unique Mechanism name) and /product (module names). If a name turns out to be unavailable (domain, trademark, marketplace conflict) or the user changes their mind, every downstream asset needs a find-and-replace pass. That's a sequencing failure \u2014 the decision was made at a point where changing it was cheap, but nobody locked it before the point where changing it became expensive.\n\n## Trigger Context\nAfter Stress Test \u2192 GO and Unit Economics \u2192 VIABLE, before /platform, /product, or /deploy.\n\nAuto-triggered: When pipeline-state shows stress_test.verdict = \"GO\" and unit_economics.verdict = \"viable\", this gate activates before Layer 2 execution.\n\nManual: User types `/name-lock` to run or revise naming decisions.\n\n## Prerequisites\n- Building Blocks complete (Block 2: BIG IDEA, Block 6: UNIQUE MECHANISM already have working names)\n- Stress Test \u2192 GO (names are worth locking)\n- Unit Economics \u2192 VIABLE (market is worth naming for)\n\n## Execution Protocol\n\n### Step 1: Extract Candidate Names from Building Blocks\n\nPull every name that will appear in customer-facing assets:\n- **Product/Brand Name**: The customer-facing name for the offer (may not exist yet \u2014 that's the point of this gate)\n- **Mechanism Name**: From Building Block 6 (UNIQUE MECHANISM). Already named during /build-blocks.\n- **Program/System Name**: If the mechanism has a named system, method, or protocol\n- **Tagline/Descriptor**: One-line positioning statement (optional but useful)\n\nPresent what exists and what's missing:\n```\nNAME LOCK \u2014 [Market Name]\n\nEXISTING NAMES (from Building Blocks):\n Mechanism: [name from Block 6]\n System/Method: [if named]\n\nNAMES NEEDED:\n Product/Brand Name: [NOT YET ASSIGNED]\n Tagline: [NOT YET ASSIGNED]\n```\n\n### Step 2: Generate Name Candidates\n\nFor each name slot that needs filling, generate 3-5 candidates scored against:\n\n1. **Memorability** (1-5): Can someone repeat it after hearing it once?\n2. **Mechanism Clarity** (1-5): Does the name hint at HOW it works or WHAT it does?\n3. **Market Resonance** (1-5): Does it use language/concepts from the buyer's world? (Check Language Bank)\n4. **Distinctiveness** (1-5): Does it sound different from competitors identified in market intel?\n5. **Domain/Handle Availability** (check): Quick web search for [name].com and obvious social handles\n\nPresent as a scored table. Recommend the top candidate with rationale.\n\n**CRITICAL RULE: One round of options. If the user rejects all candidates, generate ONE more round max with specific feedback incorporated. After that, the user provides their own name or picks from what exists. No infinite naming loops.**\n\n### Step 3: Lock Decision\n\nOnce the user confirms names (Tier 3 \u2014 Recommend & Wait):\n\nGenerate the **Name Lock Registry**:\n```\nNAME LOCK REGISTRY \u2014 [Market Name]\nLocked: [timestamp]\n\nPRODUCT NAME: [confirmed name]\nMECHANISM NAME: [confirmed name]\nSYSTEM/METHOD NAME: [confirmed name, if applicable]\nTAGLINE: [confirmed tagline, if applicable]\n\nUSAGE RULES:\n- Product name appears in: headlines, CTAs, email subject lines, ad copy, landing page title\n- Mechanism name appears in: body copy, mechanism explanation sections, module descriptions\n- System name appears in: product architecture, module names, onboarding copy\n- Tagline appears in: subheadlines, social bios, ad copy (optional)\n\nDOMAIN: [confirmed domain, if applicable]\nSOCIAL HANDLES: [confirmed handles, if applicable]\n\nSTATUS: LOCKED\nAny name change after this point requires re-running /name-lock and regenerating affected assets.\n```\n\n### Step 4: Update Building Blocks Reference\n\nIf any name changed from the original Building Blocks version:\n- Update the Building Blocks document with locked names\n- Update Copy Directives to reference locked names\n- Note: this is a name-swap only, not a content revision. No need to re-run /stress-test.\n\n### Step 5: Save and Update Pipeline State\n\nSave registry to: `assets/[market-name]/building-blocks/name-lock-registry.md`\n\nUpdate pipeline-state.json:\n```json\n{\n \"name_lock\": {\n \"status\": \"locked\",\n \"locked_at\": \"[timestamp]\",\n \"product_name\": \"[name]\",\n \"mechanism_name\": \"[name]\",\n \"system_name\": \"[name or null]\",\n \"tagline\": \"[tagline or null]\",\n \"domain\": \"[domain or null]\",\n \"revision_count\": 0,\n \"output_file\": \"assets/[market-name]/building-blocks/name-lock-registry.md\"\n }\n}\n```\n\n### Step 6: Present Confirmation\n\n```\nNAME LOCK COMPLETE \u2014 [Market Name]\n\nProduct: [name]\nMechanism: [name]\nSystem: [name]\nDomain: [domain status]\n\nThese names are now locked. All downstream assets (/product, /deploy, /passive-deploy)\nwill reference the Name Lock Registry. Any name change after this point requires\nre-running /name-lock.\n\nReady for: /platform, /product, /deploy\n```\n\n## Post-Lock Name Changes\n\nIf the user wants to change a name after lock:\n1. Re-run `/name-lock` with the change\n2. If assets have already been built: flag which assets need regeneration\n3. Update pipeline-state.json with `revision_count` incremented\n4. Note: this is deliberately friction-ful. The friction is the feature \u2014 it prevents casual name changes from cascading into rework.\n\n## Autonomy\nTier 1 \u2014 Full Auto for extracting existing names and generating candidates.\nTier 3 \u2014 Recommend & Wait for final name selection (user must confirm).\n\n## Output\nName Lock Registry (.md) saved to building-blocks directory. Pipeline state updated.\n\n## Next Step\n`/platform` and `/product` (both can now reference locked names)\nThen \u2192 `/deploy` (campaign-builder uses registry as naming input)"; //# sourceMappingURL=name-lock.d.ts.map