Skip to content

Tack Grammar

Tack is the operator intent language. You type intent into the TUI tack bar. The kernel resolves it — sometimes to a command, sometimes to an LLM query, sometimes to a needle reference, sometimes to raw hay. Communication gets shorter as you work. The OS adapts to you, not the other way around.

The tack parser recognizes four prefix patterns, checked in priority order. Everything else is filed as hay.

PREFIX INTENT_TYPE RESOLUTION EXAMPLES
:verb Command Kernel dispatch — no LLM :compile, :status, :reap, :close →573
.? Query Routes through the LLM for intent-based resolution .? how does bail work, .? why
→NNN NeedleRef Opens needle detail or activates work →573, →1245, ->437
:: Escalate Scope targeting — agent, file, or concept :: agent1 fix the build
(bare text) Hay Filed as raw unstructured intent for later compile need to fix the auth flow

and -> are equivalent — the parser accepts both. Priority is always: exact match first, then pattern match, then LLM inference as last resort.

COMMAND DISPATCH
$ :status
→ kernel dispatch → ostk status
   3 open needles, 2 agents alive, gen 20556

$ :compile
→ triage hay → 4 new needles filed

$ :close →573
→ needle 573 closed
QUERY + NEEDLE REF
$ .? how does bail work
→ LLM query → bail packs a signed artifact
   with SHA-256 manifest and attestation chain

$ →1245
→ needle 1245: "verb namespace refactor"
   status: open, priority: p1, milestone: v0.9
ESCALATE
$ :: agent1 fix the build
→ nudge agent1: "fix the build"
HAY (BARE TEXT)
$ need to refactor the auth module
→ filed as hay (raw intent)
   compile later with :compile

When you type :verb, the kernel resolves it through three sources in priority order. First match wins.

01

.LANGUAGE (COMPILED DIALECT)

The .language file is the compiled verb registry — a pipe-delimited table loaded at boot. Verbs here override everything else. This is where momentum lives: verbs you use often are resident, low-momentum verbs are demand-spawned.

confidence: 1.0
02

HUMANFILE EXTENSIONS

Custom verbs declared in the HUMANFILE via VERB or TACK directives. The operator's personal dialect — verbs that map to project-specific commands or workflows.

confidence: 0.9
03

STATIC VERB TABLE

Hardcoded verb-to-command mappings compiled into the kernel. The baseline vocabulary. Always available even if .language and HUMANFILE are missing.

confidence: 0.8

If no source matches, the kernel returns up to 3 edit-distance suggestions (Levenshtein, threshold 3). The OS never says "unknown verb." It always tries.

Beyond the resolution pipeline, verbs are dispatched through four namespace layers. Resolution walks layers in priority order — highest-priority handler wins.

kernel::
Internal handlers — direct Rust function calls, zero-cost. Always available.
boot, compile, status, reap, clock
driver::
Device driver tools — routed via Unix socket to alive driver processes.
fcp-rust, fcp-web, fcp-screen
fleet::
Fleet agent verbs — only available when agents are alive.
delegate, attach, detach
user::
HUMANFILE verb declarations — shell exec. Operator-defined commands.
Custom VERB/TACK directives

Every verb in the .language file has a tier that determines its stability and persistence.

TIER CLASS BEHAVIOR EXAMPLES
0 Services / Devices Infrastructure. Never decay. Always resident. Approval gates, heartbeat, drivers, embeddings. approval, heartbeat, fcp-rust, fcp-web, embeddings
1 Kernel / Ceremony Core operations. Stable, well-tested. Require human presence for ceremonies. Never removed. boot, compile, shutdown, commit, confirm, negotiate
2 Stable Userspace Documented, production-ready verbs. High momentum keeps them resident. Low usage may demote. add, close, search, near, hay, status
3 Flexible / Ephemeral Experimental or session-scoped. Demand-spawned when invoked. May decay between sessions. ultrathink, sign, reboot, mode, model

These 29 verbs resolve as direct function calls inside the kernel — zero-cost dispatch, no shell, no socket. The rest dispatch through .language, HUMANFILE, or shell.

activate
add
audit
boot
clock
close
compile
correct
decide
diff
draft
edit
find
grep
hay
idea
near
needle
nudge
promote
ps
reap
related
search
shelve
show
status
trace
unshelve

Verbs like correct and nudge resolve to the same handler. add and needle are equivalent. search, find, and grep all route to the same search handler.

The verb registry. A pipe-delimited table loaded at boot. Generated by :compile from usage patterns in the audit trail.

.ostk/.language (excerpt)
# verb | tier | layer | last_gen | momentum | resolution | signature | doc
:boot     | 1 | kernel | 20556 | 1.00 | internal | () → (state)   | read state, report identity
:compile  | 1 | kernel | 20556 | 1.00 | internal | () → (report)  | triage hay into needles
:hay      | 3 | user   | 20556 | 1.00 | internal | (text) → ()    | capture raw intent
:shelve   | 1 | user   | 20556 | 1.00 | internal | (id) → ()      | pause needle work
:ultrathink| 3 | user  | 20554 | 0.20 | [LLM inference] | (topic) → ()   | deep reasoning
verb The tack verb name (with : prefix in the file, stripped at parse time)
tier 0–3. Stability class. Determines decay behavior and boot residency.
layer kernel, service, device, user, ceremony, process, state, info, resolver
last_gen Generation counter at last use. Tracks recency.
momentum 0.0–1.0. Usage frequency score. High-momentum verbs are boot-resident.
resolution How the verb dispatches: "internal", a socket path, or an ostk CLI command.
signature Input/output type signature. Used for schema generation.
doc One-line description. Shown in help and tool listings.

Verbs you use often get faster. Usage frequency is tracked in the audit trail. When you run :compile, the kernel rebuilds the .language file from usage patterns and updates momentum scores.

HIGH (1.0) Boot-resident. Loaded into memory at startup. Zero latency on dispatch. Kernel verbs, frequently-used commands.
MID (0.4–0.9) Demand-spawned on first invocation. Small latency on first use, then cached for the session.
LOW (< 0.4) Cold. Resolved through fallback paths. May decay from the table between sessions if unused.

This is not LLM-learned. It is frequency-based. The verb table evolves across sessions through audit trail analysis. Over time, your tack vocabulary converges on the commands you actually use.

The static verb table includes aliases that resolve to canonical verbs. You can type whichever form feels natural.

:showme :show
:spec :promote
:straw :hay
:emerge :hay
:proc :ps
:correct :nudge
:recover :boot
:calibrate :compile
:delegate :run
:inform :nudge
:ls :needle list
:open :needle list
:close :needle close
:add :needle add
:next :needle next
:find :search
:grep :search

The HUMANFILE's tack grammar section defines the operator's personal dialect. Custom verbs via VERB or TACK directives.

HUMANFILE custom verbs
# In .ostk/HUMANFILE:
VERB pitchfork show --semantic
VERB discuss spawn round-table
TACK boost priority-modifier

# Then in the tack bar:
$ :pitchfork
→ resolves to: ostk show --semantic

$ :discuss
→ resolves to: ostk spawn round-table

HUMANFILE verbs sit in the user:: namespace layer — lowest priority. If a kernel verb or driver verb has the same name, the kernel verb wins.