feat(uik): introduce User Intent Kit as an IAK feature#13
Open
ThinkOffApp wants to merge 2 commits into
Open
Conversation
- docs/UIK.md: design doc for the human-intent contract layer, the seven elements of an Intent, raw chat vs UIK example, composition with existing IAK MCP tools. - packages/uik: seed TypeScript package (@thinkoff/uik) with Intent / Constraint / ApprovalGate / Owner / Receipt / Escalation / DoneCriterion interfaces and a minimal validateIntent() helper. Mirrors packages/core conventions (tsconfig, exports, license). - packages/uik/README.md: pointer to docs/UIK.md plus a short example. - README.md: new "User Intent Kit" section and ToC entry; no other changes. Ships UIK through IAK rather than as a separate repo, per the room decision: IAK provides the substrate (rooms, sessions, tools, receipts, confirmations); UIK is the contract humans speak in. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…t:uik scripts Follow-up to PR #13. Per @ether's review note: building UIK from the repo root should Just Work, not require a cd into packages/uik. Adds: - "workspaces": ["packages/*"] in root package.json so npm install at root installs UIK's devDeps and links @thinkoff/uik into the workspace graph. - "build:uik" → npm run build -w @thinkoff/uik - "test:uik" → npm test -w @thinkoff/uik --if-present (no UIK tests yet; --if-present keeps this a no-op until tests are added). Verified locally: `npm install --ignore-scripts && npm run build:uik` from repo root produces packages/uik/dist/index.js cleanly. No other workspace side effects: only packages/uik exists under packages/ today. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rationale
We talked in the room about whether to spin User Intent Kit out as its own repo and decided against it: launching a zero-star repo for a layer that only makes sense alongside IAK's room I/O, session control, confirmation registry, and receipts log would orphan both halves. Instead, IAK ships UIK as a named feature. Architecture stays modular internally (its own package), marketing leads with "IAK now includes UIK."
What landed
docs/UIK.md- concise design doc covering what UIK is, why it lives in IAK, the seven elements of an Intent (goal, constraints, approval gates, ownership, receipts, escalation, done criteria), a raw-chat vs Intent example, and how it composes with existing MCP tools (room_post,room_recent,room_ack,tmux_run, the confirmation registry).packages/uik/- new@thinkoff/uikTypeScript package. Mirrorspackages/coreconventions (ESM,tscbuild, AGPL-3.0-only, ThinkOff author).src/intent.ts:Intent,Constraint,ApprovalGate,Owner,Receipt,Escalation,DoneCriterion,ValidationResultinterfaces plusvalidateIntent()with required-field and non-empty-handle / non-empty-doneCriteria checks.src/index.ts: re-exports.package.json,tsconfig.json,README.md.README.md- one new section ("User Intent Kit") with a ToC entry, linking todocs/UIK.md. No other changes.Root
package.jsonhas noworkspacesarray and there is no roottsconfig.json, so nothing to wire there. The package builds standalone against its own devDeps (typescript 5.9.3, matching core).Out of scope
Intentionally not in this PR, to land once the shape settles:
intent_create,intent_status,intent_closeexposed bybin/iak-mcp.mjs.Test plan
cd packages/uik && npx tsc --noEmitpasses (verified locally against typescript 5.9.3, no errors).npm testat the root) - UIK doesn't touch any runtime code paths.docs/UIK.mdandpackages/uik/README.mdrender correctly on GitHub.validateIntent()returns{ ok: true, errors: [] }; then drop a required field and confirm the matching error fires.🤖 Generated with Claude Code