Bow Tie Kreative Writing System

Reference

API reference

Every endpoint is public, unauthenticated JSON over HTTPS. Read endpoints are cacheable for five minutes; the engine endpoints are never cached.

Base URL

https://writingsystem.bowtiekreative.com

No key, no rate limit headers, CORS open to any origin. If you are building on this, pin the corpus version — 1.0.0 — from /v1/health.

Endpoints

Meta

Meta endpoints
MethodPathWhat it returns
GET /v1 This index
GET /v1/health Liveness and corpus counts
GET /v1/openapi.json OpenAPI 3.1 description of this API

Corpus

Corpus endpoints
MethodPathWhat it returns
GET /v1/manifest Corpus manifest, inventory and load order
GET /v1/files The 30 source files
GET /v1/files/{slug} One source file, verbatim
GET /v1/principles Writing from first principles — the eleven levels
GET /v1/primitives Machine-readable linguistic primitives
GET /v1/grid The LAKA volumetric writing grid
GET /v1/axes Rhetorical and production context axes
GET /v1/operators Boolean and decision logic
GET /v1/schema JSON Schema for a rule record
GET /v1/rules Search and filter the 228 base rules
GET /v1/rules/{id} One rule with its tests, sources and required facts
GET /v1/domains Rule counts by domain
GET /v1/layers Rule counts by layer
GET /v1/strengths Rule counts by strength, and what each strength binds
GET /v1/transformations The 56 LAKA transformation-state rules
GET /v1/transformations/{id} One transformation state
GET /v1/templates Conditional composition templates
GET /v1/pipelines End-to-end writing pipelines
GET /v1/profiles Application profiles
GET /v1/recipes Volumetric generation recipes
GET /v1/tests Rule test cases and minimal pairs
GET /v1/sources Source bibliography and influence map
GET /v1/glossary Glossary terms
GET /v1/metrics The writing quality measurement model
GET /v1/search Search rules, terms, templates, pipelines and sources
GET /v1/graph The corpus as nodes and edges
GET /v1/backlinks/{id} What cites, tests or neighbours an id

Engine

Engine endpoints
MethodPathWhat it returns
GET /v1/engine-spec The reference rule engine specification
GET /v1/tests/run Run the corpus test cases through this engine
GET /v1/engine/facts Which facts the analyser derives, and which you must supply
POST /v1/analyze Surface analysis of a text
POST /v1/evaluate Run the rule engine over a text
POST /v1/resolve Which rules govern a context, before you draft
POST /v1/score Score a text against the twelve quality metrics

POST /v1/evaluate

Analyses the text, selects the rules that apply, and evaluates each against every unit of its layer.

curl -X POST https://writingsystem.bowtiekreative.com/v1/evaluate \
  -H 'content-type: application/json' \
  -d '{
    "text": "The committee reviewed the report, it was approved without discussion.",
    "profile": "PROFILE-GENERAL",
    "context": { "genre": "report", "stakes": "medium" },
    "facts": { "claim": { "type": "causal" } }
  }'

What comes back

verdict
blocked when a hard constraint demands a change, otherwise clear.
blocking
Hard constraints that fired and require an edit.
context_defaults
Apply unless you can name the exception.
ranked_options
Heuristics and creative options — scored, never forced.
checks
Rules asking you to verify or supply context rather than edit.
needs_input
Evaluations the engine refused to guess, with the exact fact paths required.
coverage
How many rules were selected, evaluated, resolved and left open.
test_plan
The regression dimensions and corpus cases to re-check after editing.

Derived facts versus facts you supply

Rule conditions read named facts. The analyser derives 80 of them from raw text — sentence length, voice, clause counts, readability, punctuation structure. The rules read 371 distinct paths in total. The rest are semantic: whether a claim is causal, whether evidence is sufficient, what effect a sentence intends.

The engine does not guess them

An unresolvable condition returns unknown and the rule is reported under needs_input with the path it needs. That is the corpus' own safe-failure clause: preserve the text, ask a focused question, do not invent.

See every derived and required path →

POST /v1/score

Scores you supply, 0–4, against the twelve weighted metrics. Four gate metrics fail the document regardless of the average.

curl -X POST https://writingsystem.bowtiekreative.com/v1/score \
  -H 'content-type: application/json' \
  -d '{ "scores": { "accuracy": 3, "clarity": 3, "usability": 2, "evidence": 3, "accessibility": 3, "ethics": 4 } }'

The metric model →

POST /v1/resolve

Which rules govern a context, before you write a word. Returns the active set, the precedence order and the selection policy.

curl -X POST https://writingsystem.bowtiekreative.com/v1/resolve \
  -H 'content-type: application/json' \
  -d '{ "profile": "PROFILE-TECH" }'