H·AI·K·U Platform Gaps

What exists today vs what's needed for multi-company business operations

Design Principle

H·AI·K·U is a Claude tool, not a platform. There is no server, no daemon, no always-on process. Cross-studio coordination, triggers, and knowledge sharing flow through providers — the company's existing tools (CRM, ticketing, wiki, comms). Claude mediates the translation. Scheduled tasks and remote triggers handle polling when no human session is active.

Current Architecture

What H·AI·K·U has today — the single-project, single-agent foundation.

Lifecycle Layer (Done)
12 StudiosLifecycle templates by domain
60 StagesPhases with hats + gates
120+ HatsBehavioral roles per stage
72 Review AgentsAdversarial verification
4 Gate Typesauto, ask, external, await
Cross-Stage IncludesReview agents from other stages
Quality Layer (Done)
Quality GatesStop hook enforcement
BackpressureStructural, not behavioral
Completion CriteriaVerifiable exit conditions
Hat IsolationFresh context per role
Post-Lifecycle Layer (Done)
38 OperationsStudio-prescribed tasks
26 ReflectionsDomain-specific analysis
Stage RefinementScoped upstream side-trips
PersistenceGit + Filesystem adapters
Provider Layer (Done — Bidirectional Translation)
6 Provider Categoriesticketing, spec, design, comms, CRM, knowledge
Inbound TranslationProvider data → H·AI·K·U artifacts (Claude mediates)
Outbound TranslationH·AI·K·U state → provider's native format
Cross-Studio Data FlowKnowledge provider = inter-studio data bus
Event DiscoveryPoll providers for triggers on session start
Semantic NormalizationClaude bridges incompatible data models
Orchestration Layer (Done)
Cross-Studio DataVia knowledge + spec providers
Event PollingScheduled tasks poll CRM/ticketing/comms
Cross-Intent TriggersProvider events + templates for automation
Intent Templates10 parameterized playbooks across 7 studios
People Layer (Done)
Ownership via TicketingTicket assignees = stage owners
Approval via ProviderTicketing workflow engines handle chains
Handoff via KnowledgeCross-studio context pushed to knowledge provider
Gate Protocol SchemaTimeout, escalation, conditions in STAGE.md
Visibility Layer (Done)
Portfolio via TicketingIntent epics + unit tickets = the dashboard
Metrics via ProviderCRM pipeline reports, ticketing velocity
Audit Trail via GitCommits, PRs, review approvals
Portfolio Browse/browse — local + remote workspace explorer with OAuth

Solved: Cross-Intent Triggers

Business processes chain across studios. Providers + scheduled tasks solve this without requiring an always-on server.

Scenario: New Customer Lifecycle

A sales deal closes. Customer success should automatically begin onboarding. But today, someone has to manually create the CS intent.

Sales: close ??? trigger ??? CS: onboarding CS: adoption
Scenario: Product to Engineering

Product strategy prioritizes a feature. Software studio should receive the roadmap item as an intent seed. No automated handoff exists.

Product: roadmap ??? trigger ??? Software: inception Software: design
Scenario: Incident to Prevention

Incident postmortem produces action items. These should automatically create compliance or software intents for prevention work.

Incident: postmortem ??? trigger ??? Software: inception
Incident: postmortem ??? trigger ??? Security: reconnaissance

Solution Providers + Scheduled Tasks

H·AI·K·U is a CLI tool, not a server. Triggers don't need an always-on daemon — they use three mechanisms:

1. Provider polling (scheduled tasks): A /schedule task runs periodically, polling the CRM/ticketing provider for events. When a Salesforce deal closes, the next poll picks it up and suggests creating a CS onboarding intent.

# Scheduled trigger: runs every 30 minutes via Claude Code /schedule
/haiku:triggers --poll crm
  → Checks CRM for deal stage changes since last poll
  → "Deal Acme Corp closed. Create CS onboarding intent?"
  → Seeds intent with deal context distilled from CRM

2. Session-start discovery: When a user opens Claude Code, the harness checks all configured providers for events affecting active intents. Pull-based, not push.

3. Studio-level trigger declarations: Studios declare what downstream intents should be suggested when work completes. These are suggestions surfaced during polling, not automatic spawns.

# sales/STUDIO.md
triggers:
  on-complete:
    - studio: customer-success
      template: new-customer-onboarding
      condition: "outcome == won"
      source: crm  # provider to pull context from

Gap 2: Intent Templates / Playbooks

Repeatable processes shouldn't require fresh elaboration every time.

Today Studios

Define the lifecycle: which stages, which hats, which gates.

Missing Intent Templates

Pre-filled intents with standard units, criteria, and references. Instantiate with parameters.

Implemented Studio Templates Directory

Add templates/ to the studio directory. Each template is a pre-filled intent with parameterized fields.

# customer-success/templates/new-customer-onboarding.md
---
name: new-customer-onboarding
studio: customer-success
parameters:
  - name: company
    required: true
  - name: deal-context
    required: false
units:
  - name: "technical-setup"
    stage: onboarding
    criteria:
      - "{{ company }} environment provisioned and accessible"
      - "SSO/auth configured and tested"
  - name: "kickoff-meeting"
    stage: onboarding
    criteria:
      - "Kickoff scheduled with {{ company }} stakeholders"
      - "Success milestones agreed and documented"
---

Templates are instantiated via /haiku:start --template new-customer-onboarding --company "Acme Corp". Parameters fill in the template. Triggers can also instantiate templates automatically.

Solved: Cross-Studio Data Flow

Departments share context through providers. The knowledge provider is the cross-studio data bus — Claude writes to it in one studio and reads from it in another.

Product Strategyroadmap item
→ ?
Softwareinception inputs
Softwaredevelopment
Salesdeal context
→ ?
Customer Successonboarding inputs
Customer Successadoption
Customer Successhealth data
→ ?
Product Strategydiscovery inputs
Product Strategyprioritization

Solution Knowledge Provider as Data Bus

Studios don't share filesystems. They share providers. Claude translates in both directions.

# Studio A (product-strategy) completes roadmap stage:
  → Claude distills roadmap item into knowledge provider format
  → Writes to Confluence/Notion in the team's standard brief template
  → NOT markdown frontmatter — the provider's native format

# Studio B (software) starts inception stage:
  → Claude reads knowledge provider for relevant context
  → Distills Confluence brief into H·AI·K·U intent context + criteria
  → The provider's data model doesn't need to match H·AI·K·U's

The key insight: Claude is the universal adapter. Salesforce doesn't store frontmatter. Confluence doesn't understand bolts. Claude reads the provider's native data model, understands the semantic meaning, and produces H·AI·K·U artifacts — and vice versa. The translation is in Claude's context, not in a rigid schema mapping.

Mostly Solved: People Layer

Ownership, approval, and handoffs are provider concerns — the ticketing system handles role assignment, the CRM handles deal ownership, the comms provider handles notifications. H·AI·K·U pushes state to these tools rather than reinventing people management.

Solved Role Assignment

The ticketing provider assigns owners. When H·AI·K·U creates a ticket for a stage's work, the assignee IS the owner. CRM deal owners map to sales stage owners.

Solved Approval Chains

The ticketing provider's workflow engine handles approval chains. Jira has approval workflows. Linear has review cycles. H·AI·K·U's external gate pushes to the provider and blocks until the provider says it's approved.

Solved Handoff Protocols

The knowledge provider is the handoff mechanism. Sales pushes deal context to Confluence; Customer Success reads it. Claude translates in both directions.

Solved Event-Driven Gates

Scheduled tasks poll providers continuously. The await gate records what it's waiting for; the next poll checks the provider (CRM deal stage changed? Comms thread got a reply?) and advances the gate.

Solution Providers ARE the People Layer

H·AI·K·U doesn't need its own role system. The company's existing tools already manage people:

# Ownership: ticketing provider assigns owners
H·AI·K·U creates stage ticket → assigns to team via provider config
Ticketing system handles: who, notifications, escalation

# Approval: provider workflow engines
external gate → creates PR/ticket → provider's approval workflow runs
H·AI·K·U polls provider → approved? → advance gate

# Handoff: knowledge provider
Sales intent completes → pushes handoff context to Confluence
CS intent starts → reads handoff context from Confluence
Claude translates between the two studios' data models

# Event gates: scheduled task polling
await gate → records what it's waiting for
Scheduled task polls CRM/comms every N minutes
Event detected → gate advances on next session or poll

Remaining gap: A gate-protocol: schema in STAGE.md could formalize timeout and escalation behavior. But the actual execution of approvals and ownership lives in the provider, not in H·AI·K·U.

Mostly Solved: Portfolio Visibility

The ticketing provider IS the portfolio dashboard. CRM pipeline views show deal progress. Jira boards show engineering work. The provider already aggregates across teams.

Solved Portfolio Dashboard

Intent epics in the ticketing provider = portfolio items. The provider's board, backlog, and reporting views are the dashboard. H·AI·K·U keeps them in sync via outbound translation.

Solved Metrics

The ticketing provider tracks velocity, cycle time, and throughput. The CRM tracks pipeline conversion. H·AI·K·U's reflection dimensions produce domain-specific analysis. Providers aggregate; H·AI·K·U analyzes.

Solution /browse + Providers

The /browse feature is a hosted SPA that renders H·AI·K·U workspaces from any source:

# Local — drag and drop a project folder
/browse → reads .haiku/ via File System Access API

# Remote — connect to any Git provider
/browse/git?repo=github.com/org/repo → GitHub REST API
/browse/git?repo=gitlab.com/group/project → GitLab REST API

# Auth — SPA OAuth for private repos
/auth/github/callback → code exchange via GCP Cloud Function
/auth/gitlab/callback → code exchange via GCP Cloud Function

# Views: Portfolio → Intent → Stage → Unit
# Same components for local and remote — only the data source differs

Ticketing provider boards remain the primary operational dashboard. /browse adds artifact-level visibility — dive into intent specs, unit criteria, stage outputs — directly from the browser.

Summary

Built

Solved via Providers + Browse

Previously Closed

Wave 2: Multi-Company Maturity

With the foundation complete, these gaps emerge when running H·AI·K·U across departments at scale.

Scale Layer (Wave 2 — All Resolved)
Conflict AwarenessGit handles conflicts; elaboration checks active branches
Knowledge DecayFreshness metadata on outputs, code-drift check at elaboration
Composite IntentsMulti-studio parallel stages with sync points
Post-Delivery MonitoringAlready covered by /operate — studio operations templates
Capacity Model/haiku:capacity — reads timestamps from frontmatter
Access ControlHandled by providers — git, ticketing, CRM enforce their own ACLs
Studio VersioningRedundant — plugin version tracks all studios together

Wave 2 Gap 1: Conflict Awareness

This is primarily a software concern. Git already handles merge conflicts at PR time. The improvement is earlier awareness — during elaboration, not at merge.

Resolved Elaboration-Time Branch Check

During elaboration (step 4.1), the software studio's inception stage checks for other active haiku/* branches and their recent file changes. If overlap is detected, it surfaces a note — not a blocker. Git handles the actual conflicts.

# During elaboration, a quick check:
git branch -r --list 'origin/haiku/*' | while read branch; do
  git diff --name-only main...$branch
done
# → "Note: haiku/auth-refactor also modifies src/auth/ — be aware"

# Not a blocker. Not a trigger. Just awareness during planning.

No footprint schema, no polling infrastructure, no cross-repo scanning. Git is already the conflict resolution tool. This just moves awareness earlier.

Wave 2 Gap 2: Knowledge Decay

Knowledge artifacts become stale as the product evolves. Detection belongs at the point of use — during elaboration, when a stage loads its inputs — not on a polling schedule.

Implemented Decay Metadata on Stage Outputs

Stage outputs declare freshness and code dependencies in their frontmatter. When a downstream stage loads the input during elaboration, Claude checks the metadata and surfaces staleness.

# Stage output metadata (written during output persistence, step 4.4)
---
name: behavioral-spec
stage: product
created: 2026-03-15
freshness: 90d              # advisory: consider stale after 90 days
last_validated: 2026-03-15
depends_on_code:             # files this artifact describes
  - src/api/routes/*.ts
  - src/services/auth.ts
---

# Decay check (during elaboration, step 4.1 — when loading inputs):
# Claude reads the input artifact, checks the metadata:
1. freshness: created + 90d < now? → "This spec is 120 days old"
2. code drift: git log --since={last_validated} -- {depends_on_code}
   → "47 commits to the described files since this spec was written"
3. Claude decides: surface as a note, trigger stage-scoped refinement,
   or proceed if the changes are irrelevant to this stage's work

No trigger, no polling. The check happens naturally when the artifact is consumed. Code-drift is more meaningful than time — a spec describing unchanged code is still fresh regardless of age.

Wave 2 Gap 3: Studio Composition

A product launch needs marketing AND software stages running in parallel with sync points. A compliance remediation might require both software development AND documentation. Today, these are separate intents with manual coordination.

Implemented Composite Intents

An intent can declare multiple studios with sync points. Each studio's stages run independently, but specified stages must sync before either can advance.

# intent.md for a product launch
---
title: Launch Feature X
composite:
  - studio: software
    stages: [inception, design, development]
  - studio: marketing
    stages: [research, strategy, content, launch]
sync:
  - wait: [software:development, marketing:content]
    then: [marketing:launch]
    reason: "Can't launch marketing until the feature is built"
---

# Execution:
# software:inception and marketing:research run in parallel
# software:design and marketing:strategy run in parallel
# software:development and marketing:content run in parallel
# marketing:launch WAITS for both software:development + marketing:content
# → sync point enforced by the orchestrator

Composite intents are coordinated locally. Each studio's stages run their own elaborate→execute→review→gate cycle. Sync points are just await gates that check the other studio's stage completion status.

Wave 2 Gap 4: Post-Delivery Monitoring

Already covered by /haiku:operate. Each studio defines operation templates (health-check, monitoring, etc.) that run after delivery. The operations stage in the software studio includes health checks, dependency audits, and backup verification — all studio-prescribed.

Resolved Studio Operations = Post-Delivery Monitoring

Not a separate mechanism. The /haiku:operate skill reads operation templates from studios/{studio}/operations/ and instantiates them for each intent. The software studio already ships with health-check.md, dependency-audit.md, backup-verification.md, and secret-rotation.md.

Wave 2 Gap 5: Capacity Model

Implemented. /haiku:capacity reads timestamps from committed frontmatter — intent, stage, and unit artifacts all have started_at and completed_at. No OTEL query needed (write-only endpoint). No iteration.json (deprecated). Git log provides session count estimates.

Wave 2 Gap 6: Access Control

Not H·AI·K·U's concern. Providers enforce their own access control — git repos have permissions, ticketing has team visibility, CRM has deal ownership. /browse inherits git provider ACLs via OAuth. No additional layer needed.

Wave 2 Gap 7: Studio Versioning

Redundant. Studios ship as part of the plugin, which is already versioned (plugin.json, auto-bumped by CI). You can't pin studio A to v1 while studio B runs v2 — they're all in the same plugin release. Intent records the plugin version it was created with (plugin_version in frontmatter) for reference, but there's no separate studio version to manage.

Summary

Wave 1: Complete

Wave 2: All Resolved

Wave 1 makes H·AI·K·U work across companies. Wave 2 makes it work at scale.
H·AI·K·U is a Claude tool, not a platform. Providers are the infrastructure. Claude is the universal adapter.