@amityco/social-plus-vise 1.0.0 → 1.0.1
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 +10 -0
- package/README.md +143 -366
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,16 @@ 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
|
+
## 1.0.1 — 2026-06-12
|
|
8
|
+
|
|
9
|
+
Docs-only patch; no CLI, MCP, rule, or sidecar behavior changes.
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- **README rewritten for the public npm page.** Restructured customer-first (what it is → quick start → how it works → evidence → CLI/MCP/CI reference → sidecar contract) and cut from 531 to 308 lines: internal program reporting moved off the public surface, the mermaid diagrams (which npmjs.com renders as raw code blocks) replaced with a numbered flow, relative `docs/` links (which do not resolve from the npm page) removed, and references to pre-release functionality withheld from the public README until announced.
|
|
13
|
+
|
|
14
|
+
### Internal
|
|
15
|
+
- Unit-level regression case for the prose-embedded source-fingerprint path extractor in `test/run-compliance-helpers.mjs` (the 0.14.28 fix; mutation-verified). No shipped behavior change.
|
|
16
|
+
|
|
7
17
|
## 1.0.0 — 2026-06-11
|
|
8
18
|
|
|
9
19
|
**First stable release.** 1.0 is a stability promise about the contract surface, not a new feature: `vise check` exit codes (0–7) and their precedence, the `sp-vise/` sidecar formats (with backward-read + attestation grandfathering now gated by `test:sidecar-compat`), the CLI command and MCP tool surface, the skill's required loop, and the `packages/schemas` wire formats are now under semver — breaking changes require a major bump. See [`docs/V1_READINESS.md`](docs/V1_READINESS.md) for the decision package and evidence basis (5-platform deterministic E2E journeys with all exit codes asserted on every commit; real-agent semantic matrix; three brownfield pilots green with zero Vise findings). This release consolidates everything developed across the 0.14.x-dev line after the published 0.14.28 (block-aware completeness): the items below plus the platform-hardening and model-facts work noted under the 0.14.28 entry, which reached npm here.
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
<a href="https://www.npmjs.com/package/@amityco/social-plus-vise"><img src="https://img.shields.io/npm/v/@amityco/social-plus-vise.svg" alt="npm version" /></a>
|
|
9
|
-
<
|
|
9
|
+
<img src="https://img.shields.io/badge/License-Proprietary-blue.svg" alt="License" />
|
|
10
10
|
<a href="https://learn.social.plus"><img src="https://img.shields.io/badge/Docs-learn.social.plus-informational" alt="Docs" /></a>
|
|
11
11
|
</p>
|
|
12
12
|
|
|
@@ -16,208 +16,98 @@
|
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
##
|
|
20
|
-
|
|
21
|
-
```sh
|
|
22
|
-
# 1. Install
|
|
23
|
-
npm install -g @amityco/social-plus-vise
|
|
24
|
-
|
|
25
|
-
# 2. Install the AI skill into your coding tool (pick your host)
|
|
26
|
-
vise install-skill --target claude # Claude Code (personal)
|
|
27
|
-
vise install-skill --target cursor . # Cursor (project-local)
|
|
28
|
-
vise install-skill --target copilot . # GitHub Copilot / VS Code
|
|
29
|
-
|
|
30
|
-
# 3. Ask your AI agent to integrate with social.plus
|
|
31
|
-
# (the skill handles the rest — inspect, plan, init, code, check)
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
**Step 3 in practice:** Open your AI coding tool in your project and prompt:
|
|
35
|
-
|
|
36
|
-
> "Add a social feed to this app using the social.plus SDK."
|
|
19
|
+
## What is Vise?
|
|
37
20
|
|
|
38
|
-
|
|
21
|
+
Vise wraps your AI coding agent in compliance guardrails when it integrates social.plus SDKs. It inspects your project, grounds the agent in the hosted docs, enforces 300+ platform-specific compliance rules, checks generated UI against your design system, gates baseline feature completeness, and runs your project's own build/lint/typecheck sensors. **Your source code never leaves your machine.**
|
|
39
22
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
---
|
|
23
|
+
The agent still edits your app. Vise turns the request into a grounded plan, records a local contract under `sp-vise/`, and keeps checking until the integration is green, attested, or explicitly blocked on your input — so "the agent stopped" and "the integration is done" mean the same thing.
|
|
43
24
|
|
|
44
|
-
|
|
25
|
+
> **Why "Vise"?** A bench vise holds the workpiece steady so the craftsman's hands are free to shape it. Vise clamps the integration to the real docs, the real project structure, and the real compliance rules so the agent can focus on building instead of guessing.
|
|
45
26
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
Vise wraps your local coding agents in compliance guardrails when they integrate social.plus SDKs. It inspects your project, grounds the agent in hosted docs, enforces 300+ platform-specific compliance rules, checks the generated UI against the customer's design system, gates narrow baseline capabilities so nothing mandatory is silently dropped, offers richer feed capabilities as explicit opt-ins, and runs your project's own build/lint/typecheck sensors. **Your source code never leaves your machine.**
|
|
49
|
-
|
|
50
|
-
At a glance, Vise sits between the user's prompt and the agent's code changes. The agent still edits the app; Vise turns the request into a grounded plan, records the local contract, and keeps checking until the integration is ready to ship.
|
|
51
|
-
|
|
52
|
-
```mermaid
|
|
53
|
-
flowchart LR
|
|
54
|
-
Prompt["User prompt<br/>Add a social.plus feature"] --> Skill["AI skill<br/>drives the loop"]
|
|
55
|
-
Skill --> Inspect["Inspect project<br/>platform, app surface,<br/>design signals"]
|
|
56
|
-
Inspect --> Plan["Plan<br/>outcome, docs,<br/>intake questions"]
|
|
57
|
-
Plan --> Design["Design + capability preflight<br/>preview confirmation,<br/>feature checklist"]
|
|
58
|
-
Design --> Build["Agent builds<br/>edits customer code locally"]
|
|
59
|
-
Build --> Check["Vise check<br/>SDK compliance gate"]
|
|
60
|
-
Check -->|findings| Build
|
|
61
|
-
Check --> Sensors["Sensors<br/>typecheck, build,<br/>lint, SDK smoke"]
|
|
62
|
-
Sensors -->|failures| Build
|
|
63
|
-
Sensors --> Done["Done<br/>sp-vise contract<br/>and evidence"]
|
|
64
|
-
```
|
|
27
|
+
It ships as three layers:
|
|
65
28
|
|
|
66
29
|
| Layer | Purpose |
|
|
67
30
|
|---|---|
|
|
68
|
-
| **Skill** (`SKILL.md`) |
|
|
31
|
+
| **Skill** (`SKILL.md`) | Teaches your AI agent when to inspect, plan, fetch docs, edit, validate, and attest |
|
|
69
32
|
| **CLI** (`vise`) | Deterministic engine: inspects repos, searches docs, validates setup, runs sensors, manages attestations |
|
|
70
|
-
| **MCP adapter** | Optional stdio server for MCP-capable
|
|
33
|
+
| **MCP adapter** | Optional stdio server for MCP-capable hosts (Claude Code, Cursor, Codex, VS Code, Copilot) |
|
|
71
34
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
Vise validates on three layers, and the layer is set by the *kind of claim* — which keeps it false-positive-free where it gates:
|
|
75
|
-
|
|
76
|
-
| Layer | Claim | How | Enforcement |
|
|
77
|
-
|---|---|---|---|
|
|
78
|
-
| **SDK compliance** | "this is **wrong**" | 300+ deterministic rules (session renewal, live-collection vs one-shot, no secret in logs, parent-child rendering, ban-state gating…) | **Hard gate** — `vise check` blocks until green or attested. A small advisory subset surfaces as informational only and never blocks. |
|
|
79
|
-
| **Design conformance** | "this **looks off**" | extract the customer's design system into a contract, render a preview for confirmation, then check token usage | **Advisory** — `vise design check`/`preview`; never fails a build |
|
|
80
|
-
| **Feature completeness** | "this is **missing**" | Vise proposes a narrow baseline per outcome; for add-feed, pagination is mandatory, for add-comments, the composer/write affordance is mandatory, for add-chat, send plus read/unread state are mandatory, and for add-follow/profile, SDK-backed follower/following data is mandatory, while richer feed capabilities are opt-in choices from `vise plan` | **Decision gate** — `vise check` exits `completeness-gap` until each baseline capability is built, satisfied by an installed Block Factory block (evidence `source: "block:<id>"`, re-validated locally on every check), or validly opted out; selected optional capabilities run separate sensors |
|
|
81
|
-
|
|
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. Installed Block Factory blocks count too: the factory declares the completeness ids a block provides (`providesCapabilities`), `vise blocks add --apply` records them in `sp-vise/blocks.json`, and `vise check` honours them only while the block's manifest dependency and touched files are intact — on drift the gap returns. 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
|
-
|
|
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, writes a local creative brief for user variant selection, and records the accepted variant so `vise plan`, `vise init`, and `vise workplan` can carry that product/UX direction forward. 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
|
-
|
|
88
|
-
The current milestone is the **Learning Engine sensor bridge with score calibration guardrails**. After creative selection, experience compilation, and sensor review, Vise can keep local learning events that snapshot the selected variant, outcome, Experience Report, and Experience Sensor Framework, then summarize recurring review gaps by variant, outcome, and dimension. The shadow calibration track now has 70 measured cells, including a v2 independent candidate-ranking matrix that ranked the expected variant first in 21/21 registered cells while preserving visible review gaps. The v2 human gate has named product FP/FN and privacy sign-off recorded, including approval that `event-first` beats `creator-first` in the five thin-margin cross-platform cells. Gate 2 exposes this evidence only as an explicit `vise creative --ranking-preview` local advisory preview; the current local dogfood pass covers 18 synthetic prompts spanning ten archetypes and all ten catalog variants (seven available, three gamification variants gated as in-development). Of the 14 available-variant cases, 13 align and 1 is a declared near-miss — in the opt-in preview only, the shadow-policy-v2-draft ranking ranks `live-commerce` just above `discovery-first` for an ecommerce social-discovery prompt, while the brief's keyword default and the agent both pick the human-correct `discovery-first` — with 0 undeclared ranking concerns and 0 candidate-surfacing gaps; the other 4 gamification cases are correctly gated. The paired `live-shopping-stream` control (a clear live-selling prompt) shows the preview correctly elevating `live-commerce` over the keyword default. There are still no uploads, no changed `vise check` exit codes, no calibrated single score, no auto-acceptance, and no default recommendation ranking. See [docs/UX_HARNESS_MVP.md](docs/UX_HARNESS_MVP.md), [docs/LEARNING_ENGINE_MVP.md](docs/LEARNING_ENGINE_MVP.md), [docs/EXPERIENCE_SCORE_CALIBRATION.md](docs/EXPERIENCE_SCORE_CALIBRATION.md), and [docs/ENGAGEMENT_INTELLIGENCE_SYSTEM.md](docs/ENGAGEMENT_INTELLIGENCE_SYSTEM.md).
|
|
89
|
-
|
|
90
|
-
### Relationship to social.plus Block Factory
|
|
91
|
-
|
|
92
|
-
Vise keeps two deliberately separate personas — the **customer-integration helper** (runs inside customer projects, may write `sp-vise/*`, including the `vise blocks` installer workflow) and the **Block Factory SDK-facts provider** (projectless, read-only, exports SDK symbol/capability/model facts). Vise owns SDK truth and customer-project governance; Block Factory owns the blocks. The canonical ownership table and the seam contracts live in [`../docs/BOUNDARY.md`](../docs/BOUNDARY.md); the provider-side design is [docs/SDK_FACTS_FOR_BLOCK_FACTORY.md](docs/SDK_FACTS_FOR_BLOCK_FACTORY.md).
|
|
93
|
-
|
|
94
|
-
### Block Factory user experience
|
|
95
|
-
|
|
96
|
-
When Vise is used with social.plus Block Factory, the customer experience should feel like asking an AI agent for a social capability rather than manually assembling SDK calls and UI states:
|
|
97
|
-
|
|
98
|
-
> "Add social.plus comments to this app and match my existing design system."
|
|
99
|
-
|
|
100
|
-
The agent uses Vise to turn that request into a governed install workflow:
|
|
35
|
+
## Quick Start
|
|
101
36
|
|
|
102
37
|
```sh
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
vise
|
|
106
|
-
vise blocks add . --block comments --registry ./registry/blocks.json --package-source npm --apply
|
|
107
|
-
vise blocks validate . --block comments --registry ./registry/blocks.json --format json
|
|
108
|
-
vise run-sensors --dry-run
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
What Vise does:
|
|
112
|
-
|
|
113
|
-
- Inspects the customer project and detects the target platform.
|
|
114
|
-
- Reads Block Factory registry metadata without owning block product data.
|
|
115
|
-
- Plans package, source-anchor, sidecar, design-contract, and sensor requirements.
|
|
116
|
-
- Applies changes only to package manifests, `sp-vise/blocks.json`, and source files with explicit install anchors.
|
|
117
|
-
- Returns `needs-review` when a brownfield project has no safe install anchor.
|
|
118
|
-
- Validates installed block state and detects drift after future code changes.
|
|
119
|
-
|
|
120
|
-
Required customer or agent actions:
|
|
121
|
-
|
|
122
|
-
- Choose the block id and package source.
|
|
123
|
-
- Review the dry-run plan before using `--apply`.
|
|
124
|
-
- Add explicit install anchors when Vise cannot safely edit the project.
|
|
125
|
-
- Keep `sp-vise/blocks.json` committed so future validation has state to compare.
|
|
126
|
-
- Run the target project's normal build, lint, test, and Vise sensors before shipping.
|
|
127
|
-
|
|
128
|
-
### Design-conformant UI
|
|
129
|
-
|
|
130
|
-
Vise can ingest the customer's aesthetic into a **design contract** and guide generation to match it — from an HTML/CSS prototype (`vise design extract`) or from the host app's own design system across web + Android + Flutter + iOS (`vise design extract --from-project`: CSS vars/Tailwind/token modules, `colors.xml`, Flutter `Color(0x…)`, iOS `.colorset`/Swift). `vise design extract` writes both `sp-vise/design-contract.json` and `sp-vise/design-preview.html`; `vise plan`/`init` withhold design feed-forward until the preview is explicitly accepted with `--answer design_contract_confirmation=yes`. If the preview is rejected (`=no`), Vise asks for a replacement design source and records no design-conformance claim. `vise design check` reports token conformance; `vise design preview` writes a visual review; `vise design reference` generates a full visual design-system spec (swatches, type samples, component demos). All advisory.
|
|
131
|
-
|
|
132
|
-
**For social.plus-specific styling:** `vise design init-tokens` scaffolds `src/styles/social-plus-tokens.css` in your project — a dedicated token file for social.plus features that you can edit independently from your main app's design system. Greenfield projects get sensible `--sp-*` defaults; brownfield projects get their existing token values seeded in. Edit the file, run `vise design extract --from-project` to refresh the contract, and future agent builds inherit the updated palette — no AI agent needed in the update loop.
|
|
133
|
-
|
|
134
|
-
### Supported integrations (outcomes)
|
|
135
|
-
|
|
136
|
-
`vise plan`/`init` classify the request into an outcome and tailor the plan, rules, and feature checklist: **feed** · **comments** · **chat** · **moderation** · **community** · **social graph (follow)** · **in-app notifications** · plus setup (SDK, push, live data).
|
|
137
|
-
|
|
138
|
-
### Why "Vise"
|
|
139
|
-
|
|
140
|
-
A bench vise holds the workpiece steady so the craftsman's hands are free to shape it. Without one, the workpiece drifts and cuts wander. Vise does the same for AI agents integrating SDKs: it clamps the integration to a known-good position (the real docs, the real project structure, the real compliance rules) so the agent can focus on creative work instead of guessing.
|
|
141
|
-
|
|
142
|
-
---
|
|
38
|
+
# 1. Install the CLI
|
|
39
|
+
npm install -g @amityco/social-plus-vise
|
|
40
|
+
vise doctor # verify install
|
|
143
41
|
|
|
144
|
-
|
|
42
|
+
# 2. Install the AI skill into your coding tool
|
|
43
|
+
vise install-skill --target claude # Claude Code (personal)
|
|
44
|
+
vise install-skill --target cursor . # Cursor (project-local)
|
|
45
|
+
vise install-skill --target copilot . # GitHub Copilot / VS Code
|
|
145
46
|
|
|
146
|
-
|
|
47
|
+
# 3. Open your AI coding tool in your project and ask:
|
|
48
|
+
# "Add a social feed to this app using the social.plus SDK."
|
|
49
|
+
```
|
|
147
50
|
|
|
148
|
-
The
|
|
51
|
+
The skill drives the loop automatically — `vise inspect` → `vise plan` → `vise init` → edit code → `vise check` → `vise run-sensors`. You drive intent, answer scope questions, and approve the design preview; Vise keeps the agent honest. See [How it works](#how-it-works).
|
|
149
52
|
|
|
150
|
-
|
|
53
|
+
All skill targets:
|
|
151
54
|
|
|
152
|
-
|
|
55
|
+
| Host | Install command |
|
|
56
|
+
|---|---|
|
|
57
|
+
| Claude Code (personal scope) | `vise install-skill --target claude` |
|
|
58
|
+
| Claude Code (project scope) | `vise install-skill --target claude-project .` |
|
|
59
|
+
| OpenAI Codex | `vise install-skill --target codex` |
|
|
60
|
+
| Cursor (native skills) | `vise install-skill --target cursor .` |
|
|
61
|
+
| Cursor (legacy rules) | `vise install-skill --target cursor-rules .` |
|
|
62
|
+
| GitHub Copilot / VS Code | `vise install-skill --target vscode .` |
|
|
63
|
+
| Copilot CLI / project | `vise install-skill --target copilot .` |
|
|
64
|
+
| Generic agent project | `vise install-skill --target agents .` |
|
|
65
|
+
| Other coding agents | `vise print-skill` (paste into the host's project instructions) |
|
|
153
66
|
|
|
154
|
-
|
|
155
|
-
|---|---:|---:|---|
|
|
156
|
-
| Cursor / Composer 2.5 | 30% (3.3/11 avg) | **97% (32/33)** | One seed surfaced the remaining item instead of silently dropping it. |
|
|
157
|
-
| Claude / Sonnet 4.6 medium | 27% (3.0/11 avg) | **100% (33/33)** | All three Vise seeds reached 11/11. |
|
|
158
|
-
| Codex / GPT-5.4 medium | 21% (2.3/11 avg) | **100% (33/33)** | All three Vise seeds reached 11/11. |
|
|
67
|
+
Prefer a per-project install? `npm install -D @amityco/social-plus-vise`, then call `npx vise`. The skill is plain Markdown — read it any time with `vise print-skill`.
|
|
159
68
|
|
|
160
|
-
|
|
69
|
+
## How it works
|
|
161
70
|
|
|
162
|
-
|
|
71
|
+
1. **Inspect** — `vise inspect` detects the platform, app surfaces, available sensors, and design signals from the local repo.
|
|
72
|
+
2. **Plan** — `vise plan --request "..."` classifies the outcome, cites docs, and raises blocking intake and design-preview questions. The agent surfaces them; you answer.
|
|
73
|
+
3. **Initialize** — `vise init` writes the `sp-vise/` compliance contract. While blocking questions are unanswered it refuses, returns `status: "needs-clarification"`, and exits 7 — the agent must ask instead of guessing.
|
|
74
|
+
4. **Build** — the agent edits your code, grounded by `vise search-docs` and `vise get-doc-page`.
|
|
75
|
+
5. **Check & repair** — `vise check` reports deterministic findings, completeness gaps, and attestation needs. The agent fixes findings or records attestations with evidence, looping until green.
|
|
76
|
+
6. **Sense** — `vise run-sensors` runs your project's own typecheck/build/lint/SDK smokes. Done means the contract and evidence are committed, not just that the agent stopped.
|
|
163
77
|
|
|
164
|
-
|
|
78
|
+
### Three validation layers
|
|
165
79
|
|
|
166
|
-
|
|
167
|
-
|---|---|
|
|
168
|
-
| **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. |
|
|
169
|
-
| **Creative selection bridge** | `vise creative accept --variant <id>` writes `sp-vise/creative-selection.json` and `sp-vise/ux-harness.json`; matching `vise plan`, `vise init`, and `vise workplan next` runs surface the accepted variant, UX expectations, derive workplan surfaces from its experience objects, and mirror the selection into `sp-vise/intake.json`. |
|
|
170
|
-
| **Product flow** | Local end-to-end smoke covers design extraction, plan feed-forward, blocking intake, answered init, capability check, design conformance, and sensor discovery. |
|
|
171
|
-
| **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>/`. |
|
|
172
|
-
| **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. |
|
|
173
|
-
| **Capability-to-sensor flow** | Vise checks platform support, matches the prompt to available capabilities, offers supported features as questions, records answers, and turns selected answers into sensors in `vise check`. |
|
|
174
|
-
| **Experience Score calibration guard** | Experience Report, Experience Sensors, and Learning Engine snapshots keep `score: null`, while `learning-summary.json` keeps `recommendationOptimization.status: "not-active"`. The shadow benchmark has 70 measured cells; `shadow-policy-v2-draft` independently ranked expected variants first in 21/21 registered ranking/cross-platform cells, its human gate package has named product FP/FN and privacy sign-off recorded, and runtime exposure is limited to the opt-in local `vise creative --ranking-preview` artifact. |
|
|
175
|
-
| **Android workplan dogfood** | A brownfield Android music-player app refreshed under `0.14.24` reached `vise check` green with **43/43 deterministic passes** on the focused feed surface and recorded a green-check workplan snapshot. This is dogfood evidence, not a controlled multi-agent benchmark. |
|
|
176
|
-
| **Shared product expectations** | Public IDs such as `feed.target-resolved`, `feed.post-type-scope-explicit`, `comments.creation-affordance`, `chat.channel-list-order-explicit`, `community.avatar-from-sdk`, `moderation.role-gated-action`, `follow.relationship-live`, `profile.identity-from-sdk`, `profile.social-counts`, and `notifications.tray-live` stay platform-agnostic while check results retain concrete `contractRuleId` and `validator.sensorId` evidence when deterministic sensors exist. |
|
|
177
|
-
| **Rule detection** | TP-track dashboard detects **100% of seeded rule gaps** in the static corpus (run `npm run bench:tp` for the current seeded count; `npm run validate`'s rule-coverage gate prints the full corpus size). |
|
|
178
|
-
| **Block-aware completeness** | An installed Block Factory block satisfies its declared baseline capabilities: `vise check` counts a checklist item as present with evidence `source: "block:<id>"` when the `sp-vise/blocks.json` entry declares it in `providesCapabilities` and the install is still locally valid (dependency declared, touched files present), and the gap returns on drift. Field-level SDK model facts (`sdk-surface/models.<platform>.json`, wire format `2026-06-10.sdk-model-facts.v1`) ship for all five platform surfaces, names-and-types on every grounded platform. |
|
|
179
|
-
| **Packed-package smoke** | Packed-package and host-agent smokes exercise the release tarball path, surfaced plan questions, selected optional capability sensors, rejected design confirmation handling, and exact contract-rule evidence for shared product expectations. |
|
|
180
|
-
|
|
181
|
-
### Supporting Proof
|
|
182
|
-
|
|
183
|
-
| Surface | Safe claim | Evidence |
|
|
184
|
-
|---|---|---|
|
|
185
|
-
| **Feature completeness** | Vise helps agents build more of the expected SDK capability surface. | Latest comparison: **21-30% without Vise vs 97-100% with Vise**, with **98/99** expected feed capabilities implemented in aggregate. Earlier Capability Matrix work also showed silently dropped items falling from 7.67/11 to 4.0/11. |
|
|
186
|
-
| **SDK compliance** | Vise checks catch greenfield SDK compliance gaps that docs or static guidance can miss. | Commune benchmark: Vise averaged **100% greenfield SDK compliance** where docs/RAG-style controls averaged **67%** across the reported slices. |
|
|
187
|
-
| **Design conformance** | Vise design checks reduce design drift under ambiguous briefs. | Ambiguous Spotify-style design test: Vise design runs produced **0 / 0 / 0 hex literals** across three seeds; without Vise, runs varied **0 / 2 / 15**. This supports variance reduction, not pixel-perfect visual quality. |
|
|
188
|
-
| **Candidate ranking calibration** | Vise can optionally preview `shadow-policy-v2-draft` ranking for surfaced creative variants, without changing default runtime recommendations. | Experience calibration track: **70 measured cells**. `shadow-policy-v2-draft` ranked the expected variant first in **21/21** cells, produced **14** improvement opportunities, has named product approval for **5** thin-margin event-first-over-creator-first cells plus named privacy approval for the benchmark evidence boundary, and is exposed only through explicit `--ranking-preview`. Current local dogfood has **18** prompts (ten archetypes, all **ten** variants — seven available, three gamification gated): of the **14** available-variant cases, **13** aligned and **1** declared near-miss (in the opt-in preview only; the keyword default and the agent both pick the human-correct variant), **0** undeclared ranking concerns, **0** candidate-surfacing gaps; the other **4** gamification cases are gated, and the paired positive control shows the preview correctly elevating the human-correct variant over the keyword default; default activation remains disabled. |
|
|
80
|
+
The layer is set by the *kind of claim*, which keeps Vise false-positive-free where it gates:
|
|
189
81
|
|
|
190
|
-
|
|
82
|
+
| Layer | Claim | How | Enforcement |
|
|
83
|
+
|---|---|---|---|
|
|
84
|
+
| **SDK compliance** | "this is **wrong**" | 300+ deterministic rules (session renewal, live-collection vs one-shot, secret hygiene, parent-child rendering, ban-state gating…) | **Hard gate** — `vise check` blocks until green or attested; a small advisory subset never blocks |
|
|
85
|
+
| **Feature completeness** | "this is **missing**" | A narrow mandatory baseline per outcome (pagination for feeds, a composer for comments, send + read state for chat, SDK-backed counts for profiles); richer capabilities are explicit opt-ins from `vise plan` | **Decision gate** — `vise check` exits `completeness-gap` until each baseline item is built or opted out with `// vise: scope-omit <id> — <reason>` |
|
|
86
|
+
| **Design conformance** | "this **looks off**" | Extract your design system into a contract, confirm a preview, then check token usage | **Advisory** — `vise design check`/`preview`; never fails a build |
|
|
191
87
|
|
|
192
|
-
|
|
88
|
+
Correctness is gated by deterministic rules or attestations; completeness is gated by explicit scope decisions; conformance stays advisory because "matches the brand" is legitimately subjective. `vise explain <ruleId>` prints any rule's rationale, evidence requirements, and remediation.
|
|
193
89
|
|
|
194
|
-
|
|
195
|
-
2. **Plan** — Vise classifies the outcome, asks blocking intake questions, checks platform capability availability, and offers optional features only when the platform SDK surface supports them.
|
|
196
|
-
3. **Confirm design** — `vise design extract` writes a preview; `plan`/`init` withhold design feed-forward until the user confirms `design_contract_confirmation=yes`.
|
|
197
|
-
4. **Initialize** — `vise init` records the resolved compliance contract, intake answers, selected optional capabilities, inspection result, and accepted design digest.
|
|
198
|
-
5. **Build / check / repair** — selected answers become sensors. The agent edits locally, runs `vise check`, fixes deterministic findings, resolves completeness gaps or selected-capability failures, and then runs project sensors.
|
|
90
|
+
**Supported outcomes:** feed · comments · chat · moderation · community · social graph (follow) · in-app notifications · plus setup (SDK, push, live data). `vise plan`/`init` classify the request and tailor the plan, rules, and feature checklist.
|
|
199
91
|
|
|
200
|
-
|
|
92
|
+
### Design contracts
|
|
201
93
|
|
|
202
|
-
|
|
94
|
+
Vise can ingest your aesthetic from an HTML/CSS prototype (`vise design extract`) or from the host app's own design system across web, Android, Flutter, and iOS (`vise design extract --from-project`). The contract is **advisory input for generation**, never an enforcement gate, and it feeds forward into plans only after you confirm the generated preview with `--answer design_contract_confirmation=yes`. For social.plus-specific styling, `vise design init-tokens` scaffolds a dedicated, customer-editable token file (`src/styles/social-plus-tokens.css`) — edit it, re-extract, and future builds inherit the palette with no agent in the loop.
|
|
203
95
|
|
|
204
|
-
|
|
96
|
+
## Evidence
|
|
205
97
|
|
|
206
|
-
-
|
|
207
|
-
- **Capability Matrix v1** remains the pre-registered follow-up. It shipped the Row 2 feature-completeness claim, found **no Row 1 SDK-compliance claim** on chat/moderation/push under its registered margin, and withheld the Row 3 design claim on a technicality despite higher by-name token use.
|
|
208
|
-
- **Commune Phase 1** remains useful historical evidence for the compliance loop: two agents reached 9/9 with Vise vs 5-7/9 under controls, but it was N=1 per cell and the grader overlaps Vise's own rules.
|
|
209
|
-
- **Design tests** support design-drift reduction and token cleanup. They do not prove visual taste, pixel perfection, or production-ready UI without human review.
|
|
210
|
-
- **Negative results must travel with the claim:** no measured Vise advantage on day-2 bug fixing; the push slice exposed a non-converging attestation loop when docs and SDK disagreed; earlier enumerative plan-time design guidance measured negative and was retracted; the original `scope-omit` affordance went unused in the matrix.
|
|
98
|
+
Feed-completeness benchmark — same feed request, same SDK docs, with and without the Vise workflow (Vise arm explicitly selected optional capabilities):
|
|
211
99
|
|
|
212
|
-
|
|
100
|
+
| Agent / model | Docs-only baseline | With Vise |
|
|
101
|
+
|---|---:|---:|
|
|
102
|
+
| Cursor / Composer 2.5 | 30% (3.3/11 avg) | **97%** (32/33) |
|
|
103
|
+
| Claude / Sonnet 4.6 | 27% (3.0/11 avg) | **100%** (33/33) |
|
|
104
|
+
| Codex / GPT-5.4 | 21% (2.3/11 avg) | **100%** (33/33) |
|
|
213
105
|
|
|
214
|
-
|
|
215
|
-
|---|---|---|
|
|
216
|
-
| Building new social features with an AI agent | **Vise CLI + Skill** | This is the full governed workflow measured by the benchmarks. |
|
|
217
|
-
| Auditing existing social.plus code | `vise check --ci` | Grades any codebase against the recorded compliance contract. |
|
|
218
|
-
| Enforcing compliance in CI | `vise check --ci` | Exits non-zero on deterministic failures, missing baseline capabilities, failed selected optional sensors, blockers, or drift. |
|
|
106
|
+
Aggregate: **98/99** expected feed capabilities and **27/27** selected optional capabilities implemented across the Vise arm.
|
|
219
107
|
|
|
220
|
-
|
|
108
|
+
- **SDK compliance:** Vise averaged **100%** greenfield compliance where docs/RAG-style controls averaged **67%** (Commune benchmark).
|
|
109
|
+
- **Design drift:** under an ambiguous brief, Vise design runs produced **0/0/0** hex literals across seeds vs **0/2/15** without — variance reduction, not pixel perfection.
|
|
110
|
+
- **Boundaries:** these are best-case/opt-in comparisons for greenfield social.plus work, not universal claims. Negative results travel with the claims — e.g. no measured advantage on day-2 bug fixing. What Vise reliably changes is the **stopping condition**: the agent isn't done when code compiles; it's done when the local contract is green, attested, or blocked on explicit customer input.
|
|
221
111
|
|
|
222
112
|
## Supported Platforms
|
|
223
113
|
|
|
@@ -227,180 +117,87 @@ The benchmark suite is intentionally reported with boundaries:
|
|
|
227
117
|
| **React Native** | ✅ Full | `tsc`, `npm lint`, SDK import smoke |
|
|
228
118
|
| **Flutter / Dart** | ✅ Full | `flutter analyze`, `flutter test` |
|
|
229
119
|
| **Android (Kotlin)** | ✅ Full | Gradle assemble, unit tests |
|
|
230
|
-
| **iOS (Swift)** | ✅ Full | Static
|
|
120
|
+
| **iOS (Swift)** | ✅ Full | Static rules fully operational (tree-sitter AST for highest-risk rules); build sensor is guarded best-effort — runs only when `xcodebuild` is available, reports environment issues as skipped-with-reason, and still fails on real build errors |
|
|
231
121
|
|
|
232
122
|
Each platform has dozens of rules across 10 compliance domains (feed, comments, moderation, chat, secrets, session & auth, notifications, live objects, logging hygiene, design tokens).
|
|
233
123
|
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## Installation
|
|
237
|
-
|
|
238
|
-
### Install the CLI
|
|
239
|
-
|
|
240
|
-
```sh
|
|
241
|
-
npm install -g @amityco/social-plus-vise
|
|
242
|
-
vise doctor # verify install
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
Or install per-project:
|
|
246
|
-
|
|
247
|
-
```sh
|
|
248
|
-
npm install -D @amityco/social-plus-vise
|
|
249
|
-
npx vise --help
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### Install the Skill Into Your Coding Tool
|
|
253
|
-
|
|
254
|
-
The skill is what teaches your AI agent how to use Vise. Pick the matching host:
|
|
255
|
-
|
|
256
|
-
| Host | Install command |
|
|
257
|
-
|---|---|
|
|
258
|
-
| Claude Code (personal scope) | `vise install-skill --target claude` |
|
|
259
|
-
| Claude Code (project scope) | `vise install-skill --target claude-project .` |
|
|
260
|
-
| OpenAI Codex | `vise install-skill --target codex` |
|
|
261
|
-
| Cursor (native skills) | `vise install-skill --target cursor .` |
|
|
262
|
-
| Cursor (legacy rules) | `vise install-skill --target cursor-rules .` |
|
|
263
|
-
| GitHub Copilot / VS Code | `vise install-skill --target vscode .` |
|
|
264
|
-
| Copilot CLI / project | `vise install-skill --target copilot .` |
|
|
265
|
-
| Generic agent project | `vise install-skill --target agents .` |
|
|
266
|
-
| Other coding agents | `vise print-skill` (paste output into the host's project instructions) |
|
|
267
|
-
|
|
268
|
-
The skill is plain Markdown; you can read it any time with `vise print-skill`.
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
## Usage Flow
|
|
273
|
-
|
|
274
|
-
```mermaid
|
|
275
|
-
flowchart LR
|
|
276
|
-
A[User asks AI agent<br/>'Add a social feed'] --> B[Agent runs<br/>vise inspect]
|
|
277
|
-
B --> C[Agent runs<br/>vise plan --request "..."]
|
|
278
|
-
C --> D{Blocking intake<br/>or design preview?}
|
|
279
|
-
D -->|Yes| E[Agent surfaces questions<br/>and opens design preview<br/>for user confirmation]
|
|
280
|
-
D -->|No| F
|
|
281
|
-
E --> F[Agent reruns plan/init<br/>with answers]
|
|
282
|
-
F --> G[Agent runs<br/>vise search-docs<br/>vise get-doc-page]
|
|
283
|
-
G --> H[Agent edits<br/>your code]
|
|
284
|
-
H --> I[Agent runs<br/>vise check]
|
|
285
|
-
I --> J{Green?}
|
|
286
|
-
J -->|No, fixable| K[Agent fixes<br/>findings, completeness gaps,<br/>or selected sensors]
|
|
287
|
-
K --> I
|
|
288
|
-
J -->|No, attest| L[Agent calls<br/>vise attest with<br/>evidence]
|
|
289
|
-
L --> I
|
|
290
|
-
J -->|Yes| M[Agent runs<br/>vise run-sensors]
|
|
291
|
-
M --> N[Done.<br/>sp-vise/ contract<br/>and evidence committed]
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
The flow above is what the skill teaches your AI agent. You — the human — drive intent, answer scope questions, and approve the design preview before Vise feeds a design contract forward. The agent runs Vise commands deterministically; Vise grounds the agent in real docs and real compliance rules. If blocking intake or design confirmation is still unresolved, `vise init` refuses to initialize, returns `status: "needs-clarification"`, and exits 7 so the agent must surface the questions instead of guessing.
|
|
295
|
-
|
|
296
|
-
---
|
|
297
|
-
|
|
298
124
|
## CLI Reference
|
|
299
125
|
|
|
300
|
-
|
|
126
|
+
Run `vise <command> --help` for full flags. JSON output is the default for agent-facing commands.
|
|
127
|
+
|
|
128
|
+
### Inspect, plan, initialize
|
|
301
129
|
|
|
302
130
|
| Command | Purpose |
|
|
303
131
|
|---|---|
|
|
304
132
|
| `vise doctor` | Verify install; print version, install path, docs source |
|
|
305
133
|
| `vise inspect [path]` | Detect platform, monorepo surfaces, design signals, available sensors |
|
|
306
|
-
| `vise
|
|
307
|
-
| `vise
|
|
308
|
-
| `vise
|
|
309
|
-
| `vise
|
|
310
|
-
| `vise
|
|
311
|
-
| `vise
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
| `vise plan [path] --request "..."` | Produce a grounded implementation plan with intake questions and docs citations |
|
|
315
|
-
| `vise plan-harness [path] --request "..."` | (Pre-planning step) Build the harness around the request |
|
|
316
|
-
| `vise workplan next [path] --request "..."` | For broad social requests, print the next uncompleted surface plus focused `plan` / `init` / verification commands |
|
|
317
|
-
| `vise workplan status [path] --request "..."` | Show the broad social workplan sequence and which surfaces are already marked complete |
|
|
318
|
-
| `vise workplan complete [path] --request "..." --surface <id>` | Record a completed workplan surface after green `vise check`; writes progress to `sp-vise/workplan.json` and snapshots the active sidecar under `sp-vise/workplan-snapshots/<surface>/` |
|
|
319
|
-
| `vise init [path] --request "..." [--answer key=value]` | Write the `sp-vise/` compliance contract after blocking intake is answered; returns `needs-clarification` and exits 7 if required answers are missing |
|
|
320
|
-
| `vise blocks list --registry <path>` | Read a social.plus Block Factory registry |
|
|
321
|
-
| `vise blocks plan [path] --block <id> --registry <path>` | Plan safe block package, source-anchor, sidecar, and sensor changes |
|
|
322
|
-
| `vise blocks add [path] --block <id> --registry <path> [--dry-run\|--apply]` | Dry-run or apply safe block installation inside a customer project |
|
|
323
|
-
| `vise blocks validate [path] [--block <id>] --registry <path>` | Validate installed block sidecar state, package presence, and source anchors |
|
|
324
|
-
|
|
325
|
-
### Design contract (UI generation)
|
|
134
|
+
| `vise plan [path] --request "..."` | Grounded implementation plan with intake questions and docs citations |
|
|
135
|
+
| `vise plan-harness [path] --request "..."` | Pre-planning step: build the harness around the request |
|
|
136
|
+
| `vise init [path] --request "..." [--answer key=value]` | Write the `sp-vise/` compliance contract once blocking intake is answered; exits 7 (`needs-clarification`) otherwise |
|
|
137
|
+
| `vise workplan next [path] --request "..."` | For broad social requests: print the next uncompleted surface and its focused commands |
|
|
138
|
+
| `vise workplan status [path] --request "..."` | Show the workplan sequence and completed surfaces |
|
|
139
|
+
| `vise workplan complete [path] --request "..." --surface <id>` | Record a green-checked surface; snapshots evidence under `sp-vise/workplan-snapshots/<surface>/` |
|
|
140
|
+
|
|
141
|
+
### Creative pre-planning (advisory)
|
|
326
142
|
|
|
327
143
|
| Command | Purpose |
|
|
328
144
|
|---|---|
|
|
329
|
-
| `vise
|
|
330
|
-
| `vise
|
|
331
|
-
| `vise
|
|
332
|
-
| `vise
|
|
333
|
-
| `vise
|
|
334
|
-
| `vise
|
|
145
|
+
| `vise creative [path] --request "..." [--requirements <path\|none>] [--prototype <html>] [--ranking-preview]` | Write an advisory Engagement Intelligence brief with candidate solution variants; `--ranking-preview` adds an opt-in, local-only ranking preview that never reorders the default candidates |
|
|
146
|
+
| `vise creative accept [path] --variant <id>` | Record the selected variant so `plan`/`init`/`workplan` carry it forward; `--variant none --rationale "..."` records a catalog-gap signal instead |
|
|
147
|
+
| `vise ux-harness [path]` | Generate advisory UX expectations from the accepted selection |
|
|
148
|
+
| `vise experience compile [path]` | Compile the accepted variant into an implementation artifact plan |
|
|
149
|
+
| `vise experience sensors [path]` | Write an advisory multi-dimension sensor framework (no calibrated score) |
|
|
150
|
+
| `vise experience-report [path]` | Write an advisory dimensioned review report (no calibrated score) |
|
|
151
|
+
| `vise learning record [path]` | Append a local-only learning event; refreshes the learning summary |
|
|
152
|
+
| `vise learning show [path]` | Read the local learning summary (never changes recommendations) |
|
|
153
|
+
|
|
154
|
+
Everything in this group is local and advisory: no uploads, no `vise check` exit-code changes, no auto-accepted variants, and no calibrated score until the calibration program graduates one.
|
|
335
155
|
|
|
336
|
-
|
|
156
|
+
### Design contract
|
|
157
|
+
|
|
158
|
+
| Command | Purpose |
|
|
159
|
+
|---|---|
|
|
160
|
+
| `vise design extract <prototypePath> [--repo .] [--no-write]` | Extract a graded design contract + visual preview from an HTML/CSS prototype |
|
|
161
|
+
| `vise design extract --from-project [path] [--no-write]` | Derive the contract from the project's own design system: CSS custom properties (incl. shadcn/Tailwind v4 `@theme`), TS/JS token modules, Android `colors.xml`/`dimens.xml`, Flutter `Color(0x…)`, iOS `.colorset`/Swift colors |
|
|
162
|
+
| `vise design check [path]` | Advisory token-conformance report; never fails a build |
|
|
163
|
+
| `vise design preview [path] [--reference <prototype>]` | Write a self-contained visual review (`sp-vise/design-preview.html`) for human/VLM judgment |
|
|
164
|
+
| `vise design reference [path] [--title <name>]` | Write a self-contained design-system spec: swatches, type samples, component demos |
|
|
165
|
+
| `vise design init-tokens [path] [--force]` | Scaffold `src/styles/social-plus-tokens.css` (greenfield defaults or seeded from existing tokens); idempotent |
|
|
337
166
|
|
|
338
|
-
###
|
|
167
|
+
### Docs grounding & troubleshooting
|
|
339
168
|
|
|
340
169
|
| Command | Purpose |
|
|
341
170
|
|---|---|
|
|
342
171
|
| `vise search-docs "<query>"` | Search social.plus docs for relevant pages |
|
|
343
172
|
| `vise get-doc-page <path>` | Fetch a specific doc page by path |
|
|
344
|
-
| `vise debug [path] --error "..." [--brief]` |
|
|
173
|
+
| `vise debug [path] --error "..." [--brief]` | Diagnose an SDK-specific runtime failure; `--brief` returns the likely rule, minimal patch shape, and verification commands |
|
|
345
174
|
|
|
346
175
|
### Compliance verification
|
|
347
176
|
|
|
348
177
|
| Command | Purpose |
|
|
349
178
|
|---|---|
|
|
350
|
-
| `vise check [path]` | Re-validate against the recorded contract
|
|
351
|
-
| `vise check [path] --ci` |
|
|
352
|
-
| `vise validate [path]` | Run the deterministic validators (
|
|
179
|
+
| `vise check [path]` | Re-validate against the recorded contract: `green`, `needs-attestation`, `deterministic-failures`, `blocked`, or `contract-drift` |
|
|
180
|
+
| `vise check [path] --ci` | Read-only variant that exits non-zero unless green (for CI) |
|
|
181
|
+
| `vise validate [path]` | Run the deterministic validators only (no attestation comparison) |
|
|
353
182
|
| `vise sync [path]` | Persist deterministic-pass evidence to `sp-vise/attestations/` |
|
|
354
|
-
| `vise attest [path] --rule <id> --signer host-agent --confidence high --evidence-file evidence.json --rationale "..."` | Record an attestation when a rule passes through
|
|
355
|
-
| `vise explain <ruleId>` | Print
|
|
183
|
+
| `vise attest [path] --rule <id> --signer host-agent --confidence high --evidence-file evidence.json --rationale "..."` | Record an attestation when a rule passes through architecture the deterministic check can't see |
|
|
184
|
+
| `vise explain <ruleId>` | Print a rule's rationale, evidence requirements, and remediation |
|
|
356
185
|
| `vise status [path]` | Summarize the current compliance state |
|
|
357
186
|
|
|
358
|
-
### Sensors
|
|
359
|
-
|
|
360
|
-
| Command | Purpose |
|
|
361
|
-
|---|---|
|
|
362
|
-
| `vise run-sensors [path]` | Run detected project scripts/wrappers (npm scripts, Gradle, Flutter, lint, typecheck, SDK import smokes); inspect with `--dry-run` before running in an untrusted project |
|
|
363
|
-
| `vise run-sensors [path] --dry-run` | List what would run without executing |
|
|
364
|
-
|
|
365
|
-
### Troubleshooting quick loop
|
|
366
|
-
|
|
367
|
-
For SDK-specific runtime issues, start with the compact debug flow before broader repo exploration:
|
|
368
|
-
|
|
369
|
-
```sh
|
|
370
|
-
vise debug . --error-file logs/crash.log --brief
|
|
371
|
-
vise check . --ci
|
|
372
|
-
vise run-sensors .
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
`vise debug --brief` returns the likely rule, minimum patch shape, invariants to preserve, and verification commands for the first repair pass.
|
|
376
|
-
|
|
377
|
-
### Skill management
|
|
187
|
+
### Sensors, skill, engagement, server
|
|
378
188
|
|
|
379
189
|
| Command | Purpose |
|
|
380
190
|
|---|---|
|
|
381
|
-
| `vise
|
|
191
|
+
| `vise run-sensors [path] [--dry-run]` | Run detected project scripts (npm, Gradle, Flutter, lint, typecheck, SDK smokes); `--dry-run` lists without executing |
|
|
192
|
+
| `vise install-skill --target <host>` | Install the bundled skill into a coding host (see [Quick Start](#quick-start)) |
|
|
382
193
|
| `vise print-skill` | Print the skill markdown to stdout |
|
|
383
|
-
|
|
384
|
-
### Engagement scope (optional contractual metadata)
|
|
385
|
-
|
|
386
|
-
| Command | Purpose |
|
|
387
|
-
|---|---|
|
|
388
|
-
| `vise engagement init [path] [--tier ...] [--customer-id ...] [--scope ...]` | Record the contractual scope for this integration |
|
|
194
|
+
| `vise engagement init [path] [--tier ...] [--customer-id ...] [--scope ...]` | Record optional contractual scope metadata |
|
|
389
195
|
| `vise engagement show [path]` | Print the recorded engagement metadata |
|
|
390
|
-
|
|
391
|
-
### MCP server
|
|
392
|
-
|
|
393
|
-
| Command | Purpose |
|
|
394
|
-
|---|---|
|
|
395
196
|
| `vise mcp` | Start the stdio MCP compatibility adapter |
|
|
396
197
|
|
|
397
|
-
---
|
|
398
|
-
|
|
399
198
|
## MCP Integration
|
|
400
199
|
|
|
401
|
-
MCP-capable hosts can call Vise as structured tool calls instead of shell commands
|
|
402
|
-
|
|
403
|
-
### Config
|
|
200
|
+
MCP-capable hosts can call Vise as structured tool calls instead of shell commands:
|
|
404
201
|
|
|
405
202
|
```json
|
|
406
203
|
{
|
|
@@ -413,17 +210,13 @@ MCP-capable hosts can call Vise as structured tool calls instead of shell comman
|
|
|
413
210
|
}
|
|
414
211
|
```
|
|
415
212
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
`inspect_project`, `creative_brief`, `creative_accept`, `ux_harness`, `compile_experience`, `experience_sensors`, `plan_harness`, `plan_integration`, `init_compliance`, `check_compliance`, `experience_report`, `record_learning`, `show_learning`, `sync_compliance`, `attest_rule`, `explain_rule`, `init_engagement`, `show_engagement`, `search_docs`, `get_doc_page`, `debug_issue`, `validate_setup`, `run_sensors`, `design_extract`, `design_check`, `design_preview`, `design_reference`, `design_init_tokens`.
|
|
213
|
+
Tool names (snake_case per MCP convention): `inspect_project`, `creative_brief`, `creative_accept`, `ux_harness`, `compile_experience`, `experience_sensors`, `plan_harness`, `plan_integration`, `init_compliance`, `check_compliance`, `experience_report`, `record_learning`, `show_learning`, `sync_compliance`, `attest_rule`, `explain_rule`, `init_engagement`, `show_engagement`, `search_docs`, `get_doc_page`, `debug_issue`, `validate_setup`, `run_sensors`, `design_extract`, `design_check`, `design_preview`, `design_reference`, `design_init_tokens`.
|
|
419
214
|
|
|
420
|
-
These
|
|
421
|
-
|
|
422
|
-
---
|
|
215
|
+
These mirror the CLI commands above. The adapter still answers the legacy `resolve_request` and `suggest_patch` names, but they are deprecated in favour of `plan_integration` plus host-tool edits.
|
|
423
216
|
|
|
424
217
|
## CI Compliance
|
|
425
218
|
|
|
426
|
-
|
|
219
|
+
Commit `sp-vise/` to your repository, then add `vise check --ci` to your pipeline:
|
|
427
220
|
|
|
428
221
|
```yaml
|
|
429
222
|
name: Vise Compliance
|
|
@@ -445,53 +238,46 @@ jobs:
|
|
|
445
238
|
- run: vise check . --ci
|
|
446
239
|
```
|
|
447
240
|
|
|
448
|
-
|
|
241
|
+
`vise check --ci` is read-only — it never updates `sp-vise/` — and its JSON output includes a structured `ci` block for pipeline logs.
|
|
449
242
|
|
|
450
|
-
|
|
|
243
|
+
| Exit code | Meaning |
|
|
451
244
|
|---|---|
|
|
452
|
-
| `0` | All rules pass
|
|
245
|
+
| `0` | All rules pass; baseline capabilities present or opted-out; selected optional capabilities pass |
|
|
453
246
|
| `1` | One or more rules need attestation |
|
|
454
247
|
| `2` | One or more rules have deterministic failures |
|
|
455
248
|
| `3` | One or more blockers fired (missing prerequisite, e.g. `google-services.json`) |
|
|
456
|
-
| `4` | Contract drift — rules
|
|
457
|
-
| `5` |
|
|
458
|
-
| `6` |
|
|
459
|
-
|
|
460
|
-
`vise check --ci` is read-only. It never updates `sp-vise/`. The JSON output includes a `ci` block with structured details for pipeline logs.
|
|
461
|
-
|
|
462
|
-
---
|
|
249
|
+
| `4` | Contract drift — recorded rules no longer match the current ruleset |
|
|
250
|
+
| `5` | Baseline capability neither implemented nor opted-out (add it or place `// vise: scope-omit <id> — <reason>`) |
|
|
251
|
+
| `6` | An explicitly selected optional capability failed its source sensors |
|
|
463
252
|
|
|
464
253
|
## Compliance Contract
|
|
465
254
|
|
|
466
|
-
Vise writes local planning, compliance, design, and evidence artifacts under `sp-vise/`.
|
|
255
|
+
Vise writes local planning, compliance, design, and evidence artifacts under `sp-vise/`. These files become part of your repo and travel through code review — **commit them**. `vise check` re-validates against the recorded contract on every run, so a code change that breaks a rule surfaces as `deterministic-fail`, `attestation-needed`, or `blocked` — never a silent regression.
|
|
467
256
|
|
|
468
257
|
| File | Created by | What it contains |
|
|
469
258
|
|---|---|---|
|
|
470
|
-
| `sp-vise/compliance.json` | `vise init` |
|
|
471
|
-
| `sp-vise/intake.json` | `vise init` |
|
|
472
|
-
| `sp-vise/
|
|
473
|
-
| `sp-vise/
|
|
474
|
-
| `sp-vise/
|
|
475
|
-
| `sp-vise/
|
|
476
|
-
| `sp-vise/
|
|
477
|
-
| `sp-vise/
|
|
478
|
-
| `sp-vise/
|
|
479
|
-
| `sp-vise/experience-
|
|
480
|
-
| `sp-vise/experience-
|
|
481
|
-
| `sp-vise/
|
|
482
|
-
| `sp-vise/learning-
|
|
483
|
-
| `sp-vise/
|
|
484
|
-
| `sp-vise/
|
|
485
|
-
| `sp-vise/workplan
|
|
486
|
-
| `sp-vise/
|
|
487
|
-
| `sp-vise/design-
|
|
488
|
-
| `sp-vise/design-
|
|
489
|
-
| `sp-vise/
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
**Commit `sp-vise/` to your repo.** `vise check` re-validates against the recorded contract on every run, comparing current code against the recorded attestations. If code changes and breaks a rule, the next `check` reports `deterministic-fail`, `attestation-needed`, or `blocked` — never a silent regression.
|
|
493
|
-
|
|
494
|
-
If a rule passes through customer-specific architecture the validator can't see (a DI wrapper, an unconventional file layout, etc.), record an attestation:
|
|
259
|
+
| `sp-vise/compliance.json` | `vise init` | Selected rules, ruleset digest, app surface, selected optional capabilities, accepted design digest |
|
|
260
|
+
| `sp-vise/intake.json` | `vise init` | Request, outcome, intake answers, design-review status |
|
|
261
|
+
| `sp-vise/inspection.json` | `vise init` | Platform, surface, and design signals detected at init |
|
|
262
|
+
| `sp-vise/attestations/*.json` | `vise sync` / `vise attest` | Per-rule evidence: signer, confidence, rationale, source fingerprints for drift detection |
|
|
263
|
+
| `sp-vise/creative-brief.json` + `creative-brief.md` | `vise creative` | Advisory brief: goals, archetypes, candidate variants (JSON + human-readable) |
|
|
264
|
+
| `sp-vise/candidate-ranking-preview.json` | `vise creative --ranking-preview` | Opt-in local ranking preview; `experience_score: null`, no uploads, no default-order change |
|
|
265
|
+
| `sp-vise/creative-selection.json` | `vise creative accept` | Accepted variant and plan/workplan feed-forward context |
|
|
266
|
+
| `sp-vise/catalog-gap.json` | `vise creative accept --variant none` | Local-only no-fit signal for human catalog review |
|
|
267
|
+
| `sp-vise/ux-harness.json` | `vise creative accept` or `vise ux-harness` | Advisory UX pattern expectations and anti-patterns |
|
|
268
|
+
| `sp-vise/experience-compiler.json` | `vise experience compile` | Advisory implementation plan: install guidance, surfaces, validation commands |
|
|
269
|
+
| `sp-vise/experience-sensors.json` | `vise experience sensors` | Advisory sensor framework; `score: null` until calibrated |
|
|
270
|
+
| `sp-vise/experience-report.json` | `vise experience-report` | Advisory dimensioned review; `score: null` until calibrated |
|
|
271
|
+
| `sp-vise/learning-events.jsonl` | `vise learning record` | Append-only, local-only learning event log |
|
|
272
|
+
| `sp-vise/learning-summary.json` | `vise learning record` | Derived summary; `recommendationOptimization.status: "not-active"` |
|
|
273
|
+
| `sp-vise/workplan.json` | `vise workplan complete` | Broad-request progress: completed surfaces, green-check evidence |
|
|
274
|
+
| `sp-vise/workplan-snapshots/<surface>/` | `vise workplan complete` | Per-surface snapshots so later focused surfaces don't erase earlier proof |
|
|
275
|
+
| `sp-vise/design-contract.json` | `vise design extract` | Extracted tokens, breakpoints, source digests, stable design digest |
|
|
276
|
+
| `sp-vise/design-preview.html` | `vise design extract` / `preview` | Self-contained visual review; open before answering `design_contract_confirmation` |
|
|
277
|
+
| `sp-vise/design-reference.html` | `vise design reference` | Self-contained design-system spec (swatches, type, components) |
|
|
278
|
+
| `sp-vise/engagement.json` | `vise engagement init` (optional) | Contractual scope: tier, customer ID, outcomes, reviewer |
|
|
279
|
+
|
|
280
|
+
If a rule passes through customer-specific architecture the validator can't see (a DI wrapper, an unconventional layout), record an attestation:
|
|
495
281
|
|
|
496
282
|
```sh
|
|
497
283
|
vise attest . \
|
|
@@ -502,27 +288,18 @@ vise attest . \
|
|
|
502
288
|
--rationale "Region is read from NEXT_PUBLIC_AMITY_REGION env var in lib/amity.ts:6"
|
|
503
289
|
```
|
|
504
290
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
---
|
|
508
|
-
|
|
509
|
-
## Changelog
|
|
510
|
-
|
|
511
|
-
See [`CHANGELOG.md`](./CHANGELOG.md) for the full version history.
|
|
512
|
-
|
|
513
|
-
---
|
|
291
|
+
Attestations record SHA-256 source fingerprints of cited files, so later edits to those files invalidate the attestation automatically.
|
|
514
292
|
|
|
515
293
|
## Support
|
|
516
294
|
|
|
295
|
+
- **Documentation:** [https://learn.social.plus](https://learn.social.plus) — the same corpus `vise search-docs` grounds agents in.
|
|
517
296
|
- **Bugs / feature requests:** contact your social.plus account team or file an issue with your integration partner.
|
|
518
|
-
- **
|
|
519
|
-
- **
|
|
520
|
-
|
|
521
|
-
---
|
|
297
|
+
- **Skill installation issues:** `vise doctor` prints diagnostics; share the output with support.
|
|
298
|
+
- **Version history:** `CHANGELOG.md` ships inside the installed package.
|
|
522
299
|
|
|
523
300
|
## License
|
|
524
301
|
|
|
525
|
-
Proprietary
|
|
302
|
+
Proprietary — see the `LICENSE` file included with the package. social.plus Vise is provided to social.plus customers and integration partners under the same agreement as the social.plus SDK.
|
|
526
303
|
|
|
527
304
|
---
|
|
528
305
|
|