How it works Professions For Engineers For Lawyers Quick start GitHub ↗
Human · Intent · Native · Transpiler

You hint at the result.
AI honors the borders.

HINT is a Markdown-native specification language. Declare what must be produced — in plain human intent, right next to the work — and HINT compiles it into a deterministic, high-density prompt your AI agent can't improvise around.

$ npm install -g @openhint/cli

Compiles to prompts for Claude Code, Codex, Cursor & friends.

src/api/invoice.ts.hint Markdown
# entity Invoice {#invoice} Persisted invoice record. ## field total Decimal string, 2 places. Never float. # func validateInvoice ## bad SilentDefaults Never coerce an invalid Invoice valid.
hint compile
compiled prompt → agent deterministic
<file_context path="src/api/invoice.ts"> <data_structure name="Invoice" id="invoice"> Persisted invoice record. <field name="total"> Decimal string, 2 places. Never float. </field> </data_structure> <function_contract name="validateInvoice"> <prohibited_anti_patterns name="SilentDefaults"> Never coerce an invalid Invoice valid. </prohibited_anti_patterns> </function_contract> </file_context>
Same spec. Same hintbook. Byte-identical output, every time. No new syntax — 100% valid Markdown
What is HINT

AI gives you speed. Raw prompts quietly take away control.

You ask for one thing and get plausible improvisation around it. HINT keeps both — your declarations become binding borders, the AI produces the work inside them, and gaps come back to you as reports instead of silent decisions.

Zero syntax friction

A .hint file is pure Markdown. Nothing new to learn, instantly readable by humans and AI alike, with native highlighting in any editor.

Specs live with the work

Companion files sit next to their targets — login.ts.hint beside login.ts — and travel through the same reviews, branches, and history.

Deterministic compilation

The same specs and the same hintbook always produce the same prompt. No hidden prompt engineering — compiled prompts are reviewable, diffable artifacts.

How it works

Write intent. Compile borders. Ship the work.

01 / WRITE

Declare in Markdown

Every heading is a typed block — entity, clause, bad. Keyword, name, body. Heading depth nests the structure into a tree.

02 / COMPILE

Run hint

The transpiler walks find → parse → compile, renders each block through your hintbook's templates, and wraps it in a role header and verification footer.

03 / EXECUTE

Pipe to your agent

The high-density prompt tells the AI exactly what exists, what it must contain, what it must do, and what it must never do. Gaps come back, not guesses.

hint src/api/invoice.ts | claude -p — one pipe, spec to working code.

Or never run it by hand at all.

hint apply writes the HINT workflow into your AGENTS.md and CLAUDE.md. After that, just keep working in normal dialogue — Claude Code, Codex, and Cursor read those instructions and call hint themselves whenever a .hint spec is relevant. You stay in the conversation; the borders come along automatically.

The contract

A small, honest core. An open, extensible vocabulary.

The transpiler understands only structure — files, headings, bodies. What each keyword means is supplied by hintbooks: installable packages of instruction templates. Swap the book, and the same files compile into a different profession's language.

Borders, not vibes

The prompt states the rules

Compiled output spells out exactly what exists, what it must contain, what it must do, and what it must never do — in explicit, binding tags.

Gaps come back

Missing decisions are reported

A missing figure, party, or type is surfaced to you as a gap with its risk — never quietly filled with something plausible.

No built-in keywords

The vocabulary is yours

Publish your own hintbook as an npm package, a git repo, or a plain folder. Authoring one needs no code — if you can write Markdown, you can build it.

Deterministic & convergent

Same input, same output

Sorted traversal, stable trees, pure interpolation — byte-identical prompts you can diff in CI. A hint.lock carries that determinism into the loop: unchanged specs are skipped, and fix reconciles only the blocks that drifted.

Built for every profession

Software is the first vocabulary — not the definition.

HINT isn't just a language for programmers — it's a professional intent layer over AI. It serves anyone whose work demands strict, structured thinking: the engineer knows the architecture, the lawyer knows the deal. HINT eliminates the mechanical production while keeping the decisions yours.

Coming soon the same machinery, one new vocabulary at a time

Business Analysts

Requirements, scenarios, edge cases

soon

Product Managers

User stories, acceptance criteria, scope

soon

QA Engineers

Test cases, negative paths, expected behavior

soon

Financial Analysts

Models, assumptions, no invented numbers

soon

Compliance & Risk

Policies, controls, red flags

soon

Auditors

Scope, evidence, findings, severity

soon

Procurement

RFPs, scoring matrices, requirements

soon

Technical Writers

Doc structure, terminology, required sections

soon

Data & BI Analysts

Metric definitions, formulas, constraints

soon

Customer Support

Answer policy, escalation, prohibited replies

soon

Sales & Proposals

RFP responses, value props, exclusions

soon

Clinical Operations

Protocols, patient routing, checklists

soon

Educational Designers

Modules, objectives, grading rubrics

soon

Policy Analysts

Regulations, justifications, constraints

soon

Marketing & Brand

Tone of voice, claims, brand safety

soon

Your profession

Author a hintbook — no code required

open vocabulary

Not just for programmers — an intent layer over AI.

HINT pays off most wherever a wrong answer is expensive: analytics, compliance, finance, procurement, medicine, government, QA, documentation, and product. Anywhere the job means repeatable, high-stakes artifacts.

Contracts Policies Requirements Specs Reports Audits Test cases Checklists RFPs Proposals Documentation SOPs Acceptance criteria

hintbook-software-engineer

live
goalscopeentityfieldfuncflowerrorrulebadtestuidep

Thirty-plus keywords across intent, data, behavior, UI & constraints. Three modes: implement, fix, review.

hintbook-lawyer

live
partyclauseobligationrightexceptionbreachredlineneverliabilityauthority

Forty-plus keywords across the full anatomy of a legal norm. Three modes: draft, revise, audit.

Quick start

From zero to a compiled prompt in five minutes.

01

Install & initialize

Install the CLI, then mark the project root. hint config writes hint.yml; hint apply writes the HINT workflow into your AGENTS.md / CLAUDE.md.

# install the transpiler npm install -g @openhint/cli # scaffold + register a hintbook hint config hint add @openhint/hintbook-software-engineer # wire up AGENTS.md / CLAUDE.md hint apply
02

Compile, then keep it in sync

Drop a .hint companion next to any file and compile — referenced specs are pulled into the same prompt automatically. Verify the result with hint verify, record it with hint lock; from then on, unchanged specs are skipped and fix reconciles only the blocks that drifted.

# compile — referenced specs pulled in automatically hint src/billing/invoice.ts | claude -p # check every declared surface landed — deterministic, no tokens hint verify src/billing/invoice.ts # record what you generated so unchanged specs are skipped hint lock src/billing/invoice.ts # when a spec drifts: see what changed, fix only that hint diff src/billing/invoice.ts hint --mode fix src/billing/invoice.ts | claude -p

Stop prompting. Start specifying.

Keep the speed of AI and the control of a specification. Borders, not vibes.