@amityco/social-plus-vise 0.14.24 → 0.14.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +11 -3
- package/dist/server.js +37 -2
- package/dist/tools/creative.js +529 -0
- package/package.json +5 -2
- package/packages/intelligence/README.md +27 -0
- package/packages/intelligence/catalog/archetypes.json +86 -0
- package/packages/intelligence/catalog/business-goals.json +62 -0
- package/packages/intelligence/catalog/experience-objects.json +26 -0
- package/packages/intelligence/catalog/index.json +14 -0
- package/packages/intelligence/catalog/object-relationships.json +54 -0
- package/packages/intelligence/catalog/solution-patterns.json +141 -0
- package/packages/intelligence/catalog/ux-patterns.json +86 -0
- package/packages/intelligence/catalog/variants.json +83 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,17 @@ All notable changes to `@amityco/social-plus-vise` are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is loosely based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## 0.14.25 — 2026-06-06
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **Engagement Intelligence creative brief:** `vise creative` / MCP `creative_brief` now produces an advisory pre-planning brief from a customer request plus optional requirements document and optional prototype HTML. If requirements are absent or explicitly set to `none`, Vise enters exploratory mode instead of blocking.
|
|
11
|
+
- **Creative sidecars:** `vise creative` writes `sp-vise/creative-brief.json` and `sp-vise/creative-brief.md` with inferred goals, archetypes, candidate variants, feasibility summaries, a blocking `preferred_solution` question, and next `vise plan` / `vise workplan` commands.
|
|
12
|
+
- **Runtime intelligence catalog packaging:** the shipped npm tarball now includes `packages/intelligence` so installed CLIs can load the seeded goals, archetypes, objects, relationships, patterns, UX patterns, and variants catalog.
|
|
13
|
+
|
|
14
|
+
### Verified
|
|
15
|
+
- Added `test:creative` for requirements-driven mode, exploratory mode, sidecar writes, conflicting flag handling, and MCP smoke coverage.
|
|
16
|
+
- Packed-package E2E now runs `vise creative --no-requirements --no-write` after installing the npm tarball, proving the runtime catalog is present in the package.
|
|
17
|
+
|
|
7
18
|
## 0.14.24 — 2026-06-06
|
|
8
19
|
|
|
9
20
|
### Changed
|
package/README.md
CHANGED
|
@@ -81,6 +81,10 @@ Vise validates on three layers, and the layer is set by the *kind of claim* —
|
|
|
81
81
|
|
|
82
82
|
Correctness is gated by deterministic rules or attestations. Baseline completeness is gated by explicit scope decisions: if a baseline capability is legitimately out of scope, record `// vise: scope-omit <id> — <reason>` and it no longer blocks. Optional feed capabilities such as image upload, poll creation, and edit post are offered during planning and become checked only after the user opts in. Conformance remains advisory because "matches the brand" is legitimately subjective. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
|
|
83
83
|
|
|
84
|
+
### Engagement Intelligence roadmap
|
|
85
|
+
|
|
86
|
+
Vise's next architecture track is the social.plus **Engagement Intelligence System**: an outcome-to-experience layer that maps customer goals, archetypes, solution patterns, experience objects, UX patterns, and variants before normal implementation planning. The first advisory runtime slice is `vise creative`: it consumes a request plus optional requirements/prototype inputs, or runs in exploratory mode when requirements are absent, then writes a local creative brief for user variant selection. See [docs/ENGAGEMENT_INTELLIGENCE_SYSTEM.md](docs/ENGAGEMENT_INTELLIGENCE_SYSTEM.md), [docs/MONOREPO_ARCHITECTURE.md](docs/MONOREPO_ARCHITECTURE.md), and [packages/intelligence](packages/intelligence).
|
|
87
|
+
|
|
84
88
|
### Relationship to social.plus Block Factory
|
|
85
89
|
|
|
86
90
|
Vise has two deliberately separate roles:
|
|
@@ -161,10 +165,11 @@ Aggregate: **98/99 expected feed capabilities** and **27/27 selected optional ca
|
|
|
161
165
|
|
|
162
166
|
### Current Release Validation
|
|
163
167
|
|
|
164
|
-
Version 0.14.
|
|
168
|
+
Version 0.14.25 carries current release proof around the full feed-forward, product-expectation, creative pre-planning, and validation flow:
|
|
165
169
|
|
|
166
170
|
| Surface | What was validated |
|
|
167
171
|
|---|---|
|
|
172
|
+
| **Creative pre-planning** | `vise creative` produces requirements-driven or exploratory Engagement Intelligence briefs, writes `sp-vise/creative-brief.json` / `.md`, asks for `preferred_solution`, and survives packed-package installation with the intelligence catalog bundled. |
|
|
168
173
|
| **Product flow** | Local end-to-end smoke covers design extraction, plan feed-forward, blocking intake, answered init, capability check, design conformance, and sensor discovery. |
|
|
169
174
|
| **Multi-surface planning** | Broad social requests are decomposed into a `socialWorkplan` sequence for feed, comments, chat, and profile work instead of forcing a single top-level surface choice. `vise workplan next` tells the host agent which surface to implement next, and `vise workplan complete` records green-check progress in `sp-vise/workplan.json` with per-surface snapshots under `sp-vise/workplan-snapshots/<surface>/`. |
|
|
170
175
|
| **Plan questions** | Plans surface blocking questions such as `design_contract_confirmation`, product-scope questions such as `feed_post_type_scope`, `feed_composer_type_scope`, `comment_tray_scope`, `chat_inbox_scope`, and `profile_identity_scope`, plus optional choices such as `feed_optional_capabilities`. Focused plans still accept `feature_surface` answers when the agent is ready to implement one surface. |
|
|
@@ -298,6 +303,7 @@ The flow above is what the skill teaches your AI agent. You — the human — dr
|
|
|
298
303
|
|---|---|
|
|
299
304
|
| `vise doctor` | Verify install; print version, install path, docs source |
|
|
300
305
|
| `vise inspect [path]` | Detect platform, monorepo surfaces, design signals, available sensors |
|
|
306
|
+
| `vise creative [path] --request "..." [--requirements <path\|none>] [--prototype <html>]` | Produce an advisory Engagement Intelligence brief with 2-3 solution variants before normal implementation planning; writes `sp-vise/creative-brief.json` and `.md` unless `--no-write` is set |
|
|
301
307
|
| `vise plan [path] --request "..."` | Produce a grounded implementation plan with intake questions and docs citations |
|
|
302
308
|
| `vise plan-harness [path] --request "..."` | (Pre-planning step) Build the harness around the request |
|
|
303
309
|
| `vise workplan next [path] --request "..."` | For broad social requests, print the next uncompleted surface plus focused `plan` / `init` / verification commands |
|
|
@@ -402,7 +408,7 @@ MCP-capable hosts can call Vise as structured tool calls instead of shell comman
|
|
|
402
408
|
|
|
403
409
|
### Tool names (snake_case per MCP convention)
|
|
404
410
|
|
|
405
|
-
`inspect_project`, `plan_harness`, `plan_integration`, `init_compliance`, `check_compliance`, `sync_compliance`, `attest_rule`, `explain_rule`, `init_engagement`, `show_engagement`, `resolve_request`, `search_docs`, `get_doc_page`, `debug_issue`, `validate_setup`, `run_sensors`, `suggest_patch`, `design_extract`, `design_check`, `design_preview`, `design_reference`, `design_init_tokens`.
|
|
411
|
+
`inspect_project`, `creative_brief`, `plan_harness`, `plan_integration`, `init_compliance`, `check_compliance`, `sync_compliance`, `attest_rule`, `explain_rule`, `init_engagement`, `show_engagement`, `resolve_request`, `search_docs`, `get_doc_page`, `debug_issue`, `validate_setup`, `run_sensors`, `suggest_patch`, `design_extract`, `design_check`, `design_preview`, `design_reference`, `design_init_tokens`.
|
|
406
412
|
|
|
407
413
|
These are the same operations as the CLI commands above, exposed as MCP tools.
|
|
408
414
|
|
|
@@ -450,12 +456,14 @@ jobs:
|
|
|
450
456
|
|
|
451
457
|
## Compliance Contract
|
|
452
458
|
|
|
453
|
-
|
|
459
|
+
Vise writes local planning, compliance, design, and evidence artifacts under `sp-vise/`. `vise creative` can create advisory creative-brief files before implementation; after a successful `vise init`, the compliance contract files are added. If init returns `needs-clarification`, no compliance sidecar is written; answer the blocking questions and run init again. These files become part of your repo and travel through code review:
|
|
454
460
|
|
|
455
461
|
| File | Created by | What it contains |
|
|
456
462
|
|---|---|---|
|
|
457
463
|
| `sp-vise/compliance.json` | `vise init` | The rules selected for this integration, the Vise version, the ruleset digest, the target app surface, selected optional capabilities, optional engagement link, and an accepted design-contract digest when confirmed. |
|
|
458
464
|
| `sp-vise/intake.json` | `vise init` | The request, outcome, intake answers, remaining blocking count, design-review status (`absent`, `needs-confirmation`, `accepted`, or `rejected`), and any retrospective `--allow-unresolved-intake` acknowledgement. |
|
|
465
|
+
| `sp-vise/creative-brief.json` | `vise creative` | Advisory Engagement Intelligence brief: mode, objective, inferred goals/archetypes, candidate solution variants, feasibility summary, preferred-solution question, and next plan/workplan commands. |
|
|
466
|
+
| `sp-vise/creative-brief.md` | `vise creative` | Human-readable version of the creative brief for review with the user before selecting a variant. |
|
|
459
467
|
| `sp-vise/attestations/*.json` | `vise sync` (deterministic) or `vise attest` (host-agent / human) | Per-rule evidence: signer, confidence, rationale, cited files (with source fingerprints for drift detection). |
|
|
460
468
|
| `sp-vise/inspection.json` | `vise init` | The platform, monorepo surface, and design-token signals detected at init time. |
|
|
461
469
|
| `sp-vise/workplan.json` | `vise workplan complete` | Local progress for broad social workplans: request, completed surface IDs, outcomes, timestamps, green-check evidence, snapshot paths, and optional host-agent notes. |
|
package/dist/server.js
CHANGED
|
@@ -17,11 +17,13 @@ import { runSensorsTool } from "./tools/sensors.js";
|
|
|
17
17
|
import { getSdkFactsTool } from "./tools/sdkFacts.js";
|
|
18
18
|
import { addBlockInstall, listRegistryBlocks, planBlockInstall, validateBlockInstall } from "./tools/blocks.js";
|
|
19
19
|
import { debugIssueTool, debugIssue } from "./tools/debug.js";
|
|
20
|
+
import { creativeBriefTool } from "./tools/creative.js";
|
|
20
21
|
import { packageName, packageVersion } from "./version.js";
|
|
21
22
|
const tools = new Map([
|
|
22
23
|
searchDocsTool,
|
|
23
24
|
getDocPageTool,
|
|
24
25
|
inspectProjectTool,
|
|
26
|
+
creativeBriefTool,
|
|
25
27
|
planHarnessTool,
|
|
26
28
|
planIntegrationTool,
|
|
27
29
|
initComplianceTool,
|
|
@@ -134,6 +136,21 @@ async function handleCli(args) {
|
|
|
134
136
|
});
|
|
135
137
|
return "exit";
|
|
136
138
|
}
|
|
139
|
+
if (command === "creative") {
|
|
140
|
+
assertOnlyKnownFlags(args, ["request", "requirements", "prototype", "surface", "surface-path", "no-requirements", "no-write"], "creative");
|
|
141
|
+
if (hasFlag(args, "no-requirements") && flagValue(args, "requirements")) {
|
|
142
|
+
throw new Error("creative accepts either --requirements <path> or --no-requirements, not both.");
|
|
143
|
+
}
|
|
144
|
+
await printToolResult(creativeBriefTool, {
|
|
145
|
+
repoPath: positionalRepoPath(args.slice(1)),
|
|
146
|
+
request: requiredFlagValue(args, "request", "creative requires --request."),
|
|
147
|
+
surfacePath: flagValue(args, "surface") ?? flagValue(args, "surface-path"),
|
|
148
|
+
requirementsPath: hasFlag(args, "no-requirements") ? "none" : flagValue(args, "requirements"),
|
|
149
|
+
prototypePath: flagValue(args, "prototype"),
|
|
150
|
+
write: !hasFlag(args, "no-write"),
|
|
151
|
+
});
|
|
152
|
+
return "exit";
|
|
153
|
+
}
|
|
137
154
|
if (command === "debug") {
|
|
138
155
|
assertOnlyKnownFlags(args, ["error", "error-file", "brief"], "debug");
|
|
139
156
|
let errorMessage = flagValue(args, "error");
|
|
@@ -450,6 +467,23 @@ Re-plan with collected answers (repeat --answer for each intake question):
|
|
|
450
467
|
--answer feed_scope=community \\
|
|
451
468
|
--answer feed_target=existing\\ communityId \\
|
|
452
469
|
--answer target_screen_or_route=app/feed/page.tsx`;
|
|
470
|
+
}
|
|
471
|
+
if (command === "creative") {
|
|
472
|
+
return `${packageName} creative
|
|
473
|
+
|
|
474
|
+
Create an advisory Engagement Intelligence brief before normal Vise planning.
|
|
475
|
+
|
|
476
|
+
Usage:
|
|
477
|
+
vise creative [repoPath] --request "Make this app more social"
|
|
478
|
+
vise creative [repoPath] --request "Add retention loops" --requirements ./requirements.md
|
|
479
|
+
vise creative [repoPath] --request "Add engagement" --requirements none
|
|
480
|
+
vise creative [repoPath] --request "Add engagement" --no-requirements
|
|
481
|
+
vise creative [repoPath] --request "Add engagement" --prototype ./prototype.html
|
|
482
|
+
vise creative [repoPath] --request "Add engagement" --no-write
|
|
483
|
+
|
|
484
|
+
Output:
|
|
485
|
+
Writes sp-vise/creative-brief.json and sp-vise/creative-brief.md unless --no-write is set.
|
|
486
|
+
Requirements are optional; absence or explicit none switches creative mode to exploratory.`;
|
|
453
487
|
}
|
|
454
488
|
if (command === "plan-harness") {
|
|
455
489
|
return `${packageName} plan-harness
|
|
@@ -697,6 +731,7 @@ Usage:
|
|
|
697
731
|
vise install-skill --target codex Install bundled skill guidance
|
|
698
732
|
vise print-skill Print bundled skill markdown
|
|
699
733
|
vise inspect [repoPath] Inspect platform and design signals
|
|
734
|
+
vise creative [repoPath] --request "..." Create an Engagement Intelligence brief
|
|
700
735
|
vise debug [repoPath] --error ... Debug an SDK-specific runtime error and emit a repair brief
|
|
701
736
|
vise plan [repoPath] --request "..." Create an implementation plan
|
|
702
737
|
vise workplan next [repoPath] --request "..." Get the next broad-social surface to implement
|
|
@@ -1172,7 +1207,7 @@ function ciCheckResult(result) {
|
|
|
1172
1207
|
};
|
|
1173
1208
|
}
|
|
1174
1209
|
function positionalRepoPath(args) {
|
|
1175
|
-
const flagsWithValues = new Set(["request", "surface", "surface-path", "platform", "capability", "surface-dir", "format", "include", "timeout-ms", "query", "path", "limit", "answer", "target", "dest", "destination", "rule", "confidence", "signer", "identity", "evidence-file", "rationale", "repo", "reference", "registry", "block", "package-source", "note"]);
|
|
1210
|
+
const flagsWithValues = new Set(["request", "requirements", "prototype", "surface", "surface-path", "platform", "capability", "surface-dir", "format", "include", "timeout-ms", "query", "path", "limit", "answer", "target", "dest", "destination", "rule", "confidence", "signer", "identity", "evidence-file", "rationale", "repo", "reference", "registry", "block", "package-source", "note"]);
|
|
1176
1211
|
for (let index = 0; index < args.length; index += 1) {
|
|
1177
1212
|
const arg = args[index];
|
|
1178
1213
|
if (!arg) {
|
|
@@ -1194,7 +1229,7 @@ function positionalRepoPath(args) {
|
|
|
1194
1229
|
}
|
|
1195
1230
|
function requiredPositionalText(args, message) {
|
|
1196
1231
|
const values = [];
|
|
1197
|
-
const flagsWithValues = new Set(["request", "surface", "surface-path", "platform", "capability", "surface-dir", "format", "include", "timeout-ms", "query", "path", "limit", "answer", "target", "dest", "destination", "rule", "confidence", "signer", "identity", "evidence-file", "rationale", "repo", "reference", "registry", "block", "package-source", "note"]);
|
|
1232
|
+
const flagsWithValues = new Set(["request", "requirements", "prototype", "surface", "surface-path", "platform", "capability", "surface-dir", "format", "include", "timeout-ms", "query", "path", "limit", "answer", "target", "dest", "destination", "rule", "confidence", "signer", "identity", "evidence-file", "rationale", "repo", "reference", "registry", "block", "package-source", "note"]);
|
|
1198
1233
|
for (let index = 0; index < args.length; index += 1) {
|
|
1199
1234
|
const arg = args[index];
|
|
1200
1235
|
if (!arg) {
|