{
  "meta": {
    "brand": "CRAFTSMAN+",
    "version": "1.0.0",
    "purpose": "Machine-readable naming, taxonomy, and voice rules. An agent producing CRAFTSMAN+ output should validate against this document before returning anything."
  },
  "naming": {
    "company": {
      "approved": [
        {
          "form": "CRAFTSMAN+",
          "status": "default",
          "when": "Everywhere the + renders. Always correct."
        },
        {
          "form": "CM+",
          "status": "short",
          "when": "Space is tight, or the name repeats often in running text."
        },
        {
          "form": "CRAFTSMAN PLUS",
          "status": "fallback",
          "when": "The + is not supported and a readable full name is needed."
        },
        {
          "form": "CMP",
          "status": "fallback",
          "when": "The + is not supported and space is tight. Already in use as the Linear team key."
        }
      ],
      "never": [
        "Craftsman+",
        "craftsman+",
        "Craftsman Plus",
        "Craftsman",
        "CraftsmanPlus",
        "Cm+",
        "cm+",
        "cmp"
      ],
      "neverException": "CraftsmanPlus is acceptable only inside craftsmanplus.com, a URL, or an email address, where the domain rules.",
      "fallbackOrder": [
        "CRAFTSMAN+",
        "CM+",
        "CRAFTSMAN PLUS",
        "CMP"
      ],
      "fallbackRule": "Only drop the + when the destination genuinely cannot take it: filenames, URL slugs, code identifiers, CSV headers, ticket keys, legacy partner dashboards. Do not fall back preemptively.",
      "sentenceCaseRule": "Sentence case is not a defense. If a house style, CMS, or template would lowercase the name mid-sentence or title-case a heading, CRAFTSMAN+ still stays all caps.",
      "possessives": "Write CRAFTSMAN+'s and CM+'s. Do not restructure a sentence to avoid the apostrophe, and do not write CRAFTSMAN+S."
    },
    "products": [
      {
        "name": "PLAY",
        "approvedForms": [
          "PLAY",
          "CRAFTSMAN PLAY",
          "PLAY Editor"
        ],
        "description": "Editor for building playables and animated banners. Both export to HTML.",
        "genericWord": "play",
        "genericExample": "The user taps play."
      },
      {
        "name": "PRISM",
        "approvedForms": [
          "PRISM",
          "CRAFTSMAN PRISM",
          "PRISM Editor"
        ],
        "description": "Editor for building statics with bulk resizes and variants. Formerly CANVAS.",
        "genericWord": "prism",
        "genericExample": "Light splits in a prism."
      },
      {
        "name": "INTELLIGENCE",
        "approvedForms": [
          "INTELLIGENCE",
          "CRAFTSMAN INTELLIGENCE"
        ],
        "description": "The AI chatbot and LLM system.",
        "genericWord": "intelligence",
        "genericExample": "This is an intelligent default."
      },
      {
        "name": "ANALYTICS",
        "approvedForms": [
          "ANALYTICS",
          "CRAFTSMAN ANALYTICS"
        ],
        "description": "Proprietary analytics system, listing, and dashboards connected to playables.",
        "genericWord": "analytics",
        "genericExample": "We need better analytics on this."
      }
    ],
    "productRules": {
      "editorCasing": "Editor is title case, not all caps, in PLAY Editor and PRISM Editor. INTELLIGENCE and ANALYTICS have no Editor form because neither is an editor.",
      "noHybrids": "Use only approved forms. Never CRAFTSMAN PLAY Editor, Play editor, the Prism, or CM+ PLAY.",
      "platformRelationship": "CRAFTSMAN+ is the platform; it holds the home page, asset library, and editors. The subsystems operate on its contents. A user does not log in to PLAY; they log in to CRAFTSMAN+ and open a project in PLAY.",
      "renames": [
        {
          "from": "CANVAS",
          "to": "PRISM",
          "note": "CANVAS was renamed PRISM in September 2026. Never call the product CANVAS going forward; say PRISM, formerly CANVAS, only when the history matters."
        }
      ]
    }
  },
  "voice": {
    "attributes": [
      {
        "word": "Sophisticated",
        "practice": "Write for someone who already knows the space. Use the precise term rather than explaining around it. Do not over-qualify."
      },
      {
        "word": "Tech",
        "practice": "Be literal and specific about mechanics. Correct terminology beats approachable vagueness. Exports to HTML beats exports to a web-ready format."
      },
      {
        "word": "Atmospheric",
        "practice": "Leave room. Fewer words, more space, restraint in layout. Depth over density."
      },
      {
        "word": "Calm",
        "practice": "Declarative sentences. No exclamation marks. No urgency, no countdowns, no pressure."
      },
      {
        "word": "Intelligent",
        "practice": "Lead with the point. Cut throat clearing, preamble, and recap."
      }
    ],
    "never": {
      "punctuation": [
        "em dash",
        "exclamation mark"
      ],
      "emoji": [
        "rocket",
        "sparkle",
        "fire"
      ],
      "words": [
        "revolutionary",
        "game-changing",
        "unleash",
        "supercharge",
        "seamless",
        "effortless",
        "next-level",
        "cutting-edge",
        "delve",
        "robust",
        "empower"
      ],
      "wordsConditional": [
        {
          "word": "leverage",
          "condition": "as a verb"
        }
      ],
      "phrases": [
        "we're thrilled to",
        "we're excited to announce"
      ]
    },
    "announcementRule": "Announcing something well means describing what it does and why it matters, then stopping.",
    "cadence": {
      "triad": "Three parallel beats separated by periods. Example: Build More. Spend Less. Go Faster.",
      "claimThenMechanism": "Headline states the outcome; the supporting line states the mechanism in precise technical terms.",
      "correctionByContrast": "The claim, then its foil as a fragment. Example: Real campaign data. Not lab test theories.",
      "numbersAsProof": "Lead with a real number where a lesser brand puts an adjective. Example: 15 min brief-to-build.",
      "imperativeOpen": "Actions start on the verb: Build, Ship, Test, Scale, Explore."
    },
    "spelling": "American English. Write maximize, optimize, localize."
  },
  "color": {
    "hierarchyRule": "Primary monotones plus Orange and Pink cover 95% of output. Product palettes cover the rest, only on their own product's surfaces.",
    "purpleRule": "URCHIN (CRAFTSMAN PURPLE) belongs to the INTELLIGENCE palette. Using it elsewhere dilutes the one thing it signals.",
    "chartOrder": [
      "orange",
      "pink",
      "grey"
    ],
    "chartNote": "Beyond three series, use the palette of the product the chart belongs to. ANALYTICS dashboards use KELP, SEAGRASS, PLANKTON.",
    "exactValues": "Use exact hex values from /api/tokens.json. Never approximate, never introduce undefined tints, shades, or opacity variants, never substitute #000000 or #FFFFFF for CRAFTSMAN BLACK or CRAFTSMAN WHITE.",
    "gradientRule": "Main backgrounds use the CRAFTSMAN+ MINIMAL GRADIENT (NEBULA) nine times out of ten. Solid MIDNIGHT for working surfaces. Product dark variants are used sparingly, only on their own product.",
    "derivation": "The core palette derives from a sunset moving into night; the product palettes continue it into the sea, which is why they carry sea names. A color outside the core palette and the current product's palette is never used.",
    "textRules": {
      "eyebrows": "CRAFTSMAN ORANGE on monotone grounds. On a heavy gradient ground, eyebrows drop to solid CRAFTSMAN BLACK or CRAFTSMAN WHITE, whichever contrasts.",
      "gradientText": "A gradient may fill a word or phrase inside a headline, never the full headline and never running text. CRAFTSMAN+ GRADIENT is the default; the INTELLIGENCE gradient only on AI surfaces.",
      "gradientTextGround": "Gradient text sits on solid MIDNIGHT or on NEBULA (CRAFTSMAN+ MINIMAL GRADIENT). NEBULA is the only gradient ground that takes gradient text; never place gradient text on any other gradient background.",
      "body": "Body copy is CRAFTSMAN WHITE or CRAFTSMAN GREY on dark grounds, always solid, never gradient, never orange."
    },
    "mode": "All CRAFTSMAN+ content is dark mode. Never create light-mode content. STARLIGHT and METEOR are for type and marks, never backgrounds.",
    "naming": "Colors lead with their names (MIDNIGHT, STARLIGHT, METEOR, GARIBALDI, CORAL); the formal CRAFTSMAN names are descriptors.",
    "productPalettes": {
      "PLAY": [
        "GARIBALDI #F86400",
        "CORAL #EB5173"
      ],
      "INTELLIGENCE": [
        "GARIBALDI #F86400",
        "CORAL #EB5173",
        "URCHIN #8912A0"
      ],
      "PRISM": [
        "ANEMONE #9249F5",
        "LAGOON #4492D3",
        "REEF #06CAB8"
      ],
      "ANALYTICS": [
        "KELP #22A800",
        "SEAGRASS #49E400",
        "PLANKTON #FAFF1F"
      ],
      "rule": "Each product palette appears only on that product's surfaces. Never borrow across products or use product colors on general brand surfaces."
    }
  },
  "typography": {
    "casing": {
      "headlines": "Title Case, minor words lowercase (a, an, the, and, or, with, of, to, for). First and last word always capitalize. Example: Build Ads with Intelligence.",
      "buttons": "Title Case. Example: Book a Demo.",
      "eyebrows": "All caps with wide tracking. The only all-caps context.",
      "body": "Sentence case.",
      "neverAllCapsHeadlines": "All caps belongs to eyebrows and labels only; headlines are never all caps and never stylized lowercase.",
      "namesOverride": "CRAFTSMAN+, CM+, PLAY, PRISM, INTELLIGENCE, and ANALYTICS keep their caps in every casing context."
    }
  },
  "vocabulary": {
    "repeat": [
      "creative infrastructure",
      "interactive",
      "dynamic",
      "control",
      "enterprise",
      "pre-click data",
      "closed loop",
      "interactive ads",
      "playable ads",
      "gamification"
    ],
    "practitioner": [
      "IPM",
      "ROAS",
      "CTR",
      "CPM",
      "UA",
      "MRAID",
      "HTML5",
      "DSP",
      "CTV",
      "playables",
      "drop-off",
      "time-to-interact",
      "brief-to-build"
    ]
  },
  "values": {
    "mission": "You Should Be in Control of Your Creative. CRAFTSMAN+ is the creative infrastructure for interactive, playable ads that people actually engage with.",
    "list": [
      {
        "name": "Customer First",
        "body": "Everyone has a customer to serve. We strive for excellence at every single step, whatever it takes."
      },
      {
        "name": "Lead By Doing",
        "body": "We are hands-on leaders who take action, bring solutions, and do the right things the right way."
      },
      {
        "name": "Own It",
        "body": "Your word, your work, your actions. We operate with integrity and do what we say."
      },
      {
        "name": "Win Together",
        "body": "We have each other's back, and succeed as one team."
      },
      {
        "name": "Seize Your Potential",
        "body": "We go above and beyond to raise the standard for ourselves, our surroundings, and our results."
      }
    ]
  }
}