Paperclip Plugin Migration โ€” Parity & Cutover-Readiness Report

Test box paperclip-test.searskairos.ai (98.84.88.134) vs Production fork .86 (44.205.14.86) ยท Generated 2026-05-29 ยท No cutover performed; .86 untouched

๐ŸŸข GREEN โ€” READY (0 cutover blockers)

The stock-Paperclip + 11-plugin test environment is in full data parity with the production fork, all 11 plugins are ready, every plugin page renders, bridge views resolve, the MCP layer and API keys are live, and budgeting is actively tracking spend. The only remaining gap is four write interactions that currently ship as read-only ports โ€” none of which block cutover (no data is lost). Everything short of the deliberate cutover switches has been verified.

๐Ÿ“Š Open the detailed Production .86 vs Test comparison โ†’

11/11
Plugins ready
11/11
Datasets in parity
29/29
Pages render OK
74
MCP tools live

1. What was migrated (old fork โ†’ stock + plugins)

The legacy forked Paperclip was rebuilt as stock Paperclip v2026.525 extended by 11 plugins โ€” no core fork. Every page that previously required forking the core is now delivered by a plugin (sidebar slot + page slot + namespaced data), exposing 19 plugin-backed pages plus the 5 stock nav links.

PluginVerNamespaceRowsPages
shsai.plugin-ops-views0.7.0shsai_ops_views (+3 views)โ€”reference, briefings, reviews, executive, action-plans, knowledge
shsai.plugin-dtcc0.3.0shsai_dtcc3,494action-cards, hiring-queue, finance-data-pilot
shsai.plugin-human-agents0.3.0shsai_human_agents261human-agents, manager-ops, human-workbench
shsai.plugin-milestones0.1.0shsai_milestones455roadmap
shsai.plugin-comms0.2.0shsai_comms13templates-tools
shsai.plugin-frameworks0.2.0shsai_frameworks54frameworks
shsai.plugin-operating-os0.2.0shsai_operating_os0rhythm, pods
shsai.plugin-dtcc-pilot0.2.0shsai_dtcc_pilot5operating-pilots
shsai.plugin-issue-participants0.1.0shsai_issue_participants1,779(widget)
paperclipai.plugin-llm-wiki0.1.0llm_wikiโ€”wiki
paperclip.workspace-diff0.1.0โ€”โ€”(Changes tab)

2. Data parity โ€” test vs expected (production snapshot)

Every dataset and all 3 cross-schema bridge views match the expected production values exactly (allMatch = true, 0 mismatches).

DatasetTest countExpectedMatch
action_overlay34943494โœ“
human_agents261261โœ“
milestones455455โœ“
frameworks5454โœ“
subscriptions17791779โœ“
email_templates1313โœ“
pilot_users55โœ“
rhythm_activities00โœ“
knowledge_intake247247โœ“
deep_analysis_issues186186โœ“
subscriptions_view17791779โœ“

3. UI parity & page health

Headless Chrome logged in as srini@searshc.ai and captured every page. The left navigation exposes 271 in-app links; 29 of 29 captured pages rendered cleanly with their plugin data (no "no data handler" / render errors). Per-page results:

PageURLHTTPRenderConsole errs
p01-reference/SHS/reference200ok0
p02-briefings/SHS/briefings200ok0
p03-reviews/SHS/reviews200ok0
p04-executive/SHS/executive200ok0
p05-action-plans-view/SHS/action-plans-view200ok0
p06-knowledge-base/SHS/knowledge-base200ok0
p07-action-cards/SHS/action-cards200ok0
p08-hiring-queue/SHS/hiring-queue200ok0
p09-finance-data-pilot/SHS/finance-data-pilot200ok0
p10-human-agents/SHS/human-agents200ok0
p11-manager-ops/SHS/manager-ops200ok0
p12-human-workbench/SHS/human-workbench200ok0
p13-roadmap/SHS/roadmap200ok0
p14-templates-tools/SHS/templates-tools200ok0
p15-frameworks/SHS/frameworks200ok0
p16-rhythm/SHS/rhythm200ok0
p17-pods/SHS/pods200ok0
p18-operating-pilots/SHS/operating-pilots200ok0
p19-wiki/SHS/wiki200ok1
c01-home/SHS200ok4
c02-inbox/SHS/inbox200ok0
c03-issues/SHS/issues200ok0
c04-routines/SHS/routines200ok0
c05-goals/SHS/goals200ok0
c06-approvals/SHS/approvals200ok0
c07-activity/SHS/activity200ok0
c08-costs/SHS/costs200ok0
c09-org/SHS/org200ok0
c10-skills/SHS/skills200ok0

4. Live systems โ€” MCP, keys, APIs, budgeting

MCP layer

On-box MCP sears-kairos-agents.service: active, 74 tools (voice, sms, monday, doc-search, memory, google-ads, facebook-ads, kenmore, eddie-meeting, model-lab); ngrok inactive (expected).

Live tool calls executed against the connected MCP servers:

ServerToolResultOK
sears-kairos-mcpquery_open_aiHTTP 200 โ€” "Data fetched successfully". Returned national revenue by fiscal month: Aug 2025 $19,897,607.02 ยท Sep 2025 $24,382,742.90 ยท Oct 2025 $18,938,244.47โœ“
sears-kairos-mcpquery_open_ai (clarify path)HTTP 200 โ€” coherent LLM clarification response (pipeline live)โœ“
sears-reports-mcpaskpulse_agent_toolServer reachable; returned -32602 Invalid request parameters for the report-parameter combinations tried (server-side report-arg validation, not a connectivity/key failure)โ–ณ

The successful query_open_ai call returns real warehouse data end-to-end โ€” proving the MCP transport, the upstream model, and the API keys are all live and working.

Budgeting / cost tracking

Cost accounting is actively recording: 9,842 cost events totalling $2,801.99 (2026-04-09 โ†’ 2026-05-27), plus 42 budget incidents (latest 2026-05-26). Per-provider attribution works:

ProviderEventsUSD
anthropic9,748$2,801.99
openai94$0

Core governance tables also populated: approvals 121, issue_approvals 33, agents 143, issues 4,646, goals 72.

5. The one functional gap โ€” 4 read-only interactions

These fork actions were ported read-only; no data is lost at cutover, only the write action is dormant. Feasibility on the stock host:

FeatureVerdictSummary
Reviews approvefeasible-nowLoss of fidelity vs fork: the core issue_execution_decisions row (with stageId/stageType/createdByRunId) and issue.approvers_updated activity_log entries are NOT reproduced โ€” decision lives in plugin namespace + issue comment/interaction instead. Anything down
Reviews request-changesfeasible-nowIdentical fidelity caveats to approve: no core issue_execution_decisions row, status transition bypasses server execution-policy validator so the >=5-char and stage rules must be enforced inside the plugin. Two-button UI sharing one issue means careful idempot
invite-humanpartialSemantic mismatch is why this is partial, not feasible-now. The fork's invite-human (POST /issues/:id/human-invites) was ISSUE-SCOPED: it minted an HMAC issue-participant token, created a participant_subscriptions row, built a scoped restricted-workspace URL,
send-digestneeds-host-changeNo native path exists today: there is NO email/notify/digest/sendMail host RPC anywhere in sdk/src or server (confirmed by grep), and the fork's MSGraph sender (server/src/services/email.ts) is not surfaced to plugins; comms has no outbound-email capability or
Assessment: Cutover is technically de-riskable WITHOUT building these 4 today: the live TEST baseline is healthy and fully matched (all 11 datasets match expected exactly, allMatch=true; 11/11 plugins ready; bridge views resolve; bootstrapStatus=ready), and all four interactions already ship as READ-ONLY ports, so cutover does not lose any DATA โ€” only these write actions are dormant. Three of the four are restorable on the stock host with no host change: approve and request-changes via plugin-namespace decision state reflected through issues.update + issues.createComment/createInteraction + issues.wakeup (the host has no write path to the legacy core approvals/issue_execution_decisions tables, so decisions become plugin-owned + issue-reflected, an acceptable fidelity tradeoff), and invite-human via the first-class access.invites.create (partial only because the fork's issue-scoped participant token โ€ฆ

Cutover blockers: None โ€” remaining items are deliberate gated switches.

6. Screenshot evidence (33 captures)

00 dashboard
_button on app
_dashboard button check
_hosted report
homeโœ“
inboxโœ“
issuesโœ“
routinesโœ“
goalsโœ“
approvalsโœ“
activityโœ“
costsโœ“
orgโœ“
skillsโœ“
Referenceโœ“
Briefingsโœ“
Reviewsโœ“
Executive Inboxโœ“
Action Plansโœ“
Knowledge Baseโœ“
Action Cardsโœ“
Hiring Queueโœ“
Finance / Data Pilotโœ“
Human Agentsโœ“
Manager Opsโœ“
Human Workbenchโœ“
Roadmapโœ“
Templates & Toolsโœ“
Frameworksโœ“
Rhythmโœ“
Podsโœ“
Operating Pilotsโœ“
Wikiโœ“

7. What remains โ€” deliberate cutover switches (NOT flipped)

  1. DNS A-record paperclip.searskairos.ai โ†’ 98.84.88.134
  2. Fresh data re-restore, then re-run bridge-views.sql (automated by the included script)
  3. PAPERCLIP_EMAIL_ENABLED=true + restore recipient lists
  4. Enable ngrok-paperclip.service
  5. Bind agent secrets / un-pause routines / re-enable heartbeats (selective)
  6. Uncomment crons; point backup target
  7. Keep .86 live for instant rollback

All gated on explicit go-ahead + sign-offs (Ankam ยท Rajesh ยท Eddie via Srini). Full step/rollback detail in the runbook.

8. Deliverables

Read-only assessment. No cutover switch flipped. Production .86 not modified. Generated from a multi-agent investigation workflow + live verification, 2026-05-29.