Agent Pivot
Reorient pipeline and app around AI-agent-security pivot: archive phase 1, use-case-centric extraction, multi-source feedback, architecture debt paydown.
Why
Qpoint pivoted from API observability to AI Agent Monitoring and Governance. The market-analyst pipeline was built for phase-1 market sampling (surveying many prospects across a broad landscape); phase 2 requires use-case honing (testing named hypotheses with build partners, advisors, and prospects through a unified multi-source feedback stream). The current extraction prompt, schema, and site front-end are positioned for the old business. Archiving phase 1 and redefining around use cases and relationship types unlocks cleaner development, clearer signal aggregation, and vocabulary coherence across prompt, schema, validator, and UI.
Objective
Execute a four-workstream reorientation: archive the phase-1 corpus as a browseable static snapshot, redefine extraction vocabularies around agent-security use cases with relationship-type awareness, resume imports under the new lens with pilot-then-bulk discipline, and address structural debt (vocabulary drift, prompt/schema duplication, schema sharing with the site).
Scope
Workstream A — Archive phase 1
Capture final analysis.json (never yet generated), generate static site snapshot at archive/phase-1/site/, move all phase-1 data to archive/phase-1/data/, create archive README documenting the phase and findings, tag the commit phase-1-final, reset sync state, add archive link to new dashboard.
Workstream B — Redefine analysis areas
Define data/use-cases.json registry (named use cases being honed), extend companies.json and known-entities.json with source typing (build-partner / prospect / ciso-advisory / investor / analyst / industry-peer / internal), create schemas/vocabularies.ts as single source of truth (vocabularies defined once, flows to prompt via generator, types via derivation, validator via import), rewrite pipeline/prompts/extract-call.md with agent-security vocabularies and use-case evidence tagging, restructure insights into unified observations[] stream (market signals and product feedback coexist with type and source metadata), define data/feedback.json structure for triage tracking (status: new/acknowledged/committed/shipped/validated/declined), update goals.md for the /analyze skill.
Workstream C — Import phase 2
Invert import filters to tag known sources instead of discarding them (allowlist via companies.json domains/patterns and known-entities.json source overrides), pilot 2–3 diverse calls with new prompt sequentially, evaluate model version bump (sonnet-4 → sonnet-5), bulk-extract remainder via batch API, fix batch.ts to honor classification filter and share prompt assembly, build use-case-centric and source-aware site views: use-case evidence rollup (new homepage), company/source journey page (extends companies detail), feedback triage view (product feedback slice), source-type filter (joins FilterBar).
Workstream D1 — Quick fixes (folded into B/C)
Vocabulary single-sourcing (done in B), shared prompt-assembly module, model constant extraction into shared constant or .env, site label-map generation from vocabularies.ts.
Workstream D2 — Deep review (follow-on thread after phase-2 usage real)
Flat JSON vs DB evaluation, structured extraction via API, analyze.ts reshape (map-reduce per-use-case + per-company), schema sharing with site (npm workspace or build-step), schema-driven detail-page rendering, pipeline config layer.
Key files touched:
- Prompt & pipeline:
pipeline/prompts/extract-call.md,pipeline/extract.ts,pipeline/batch.ts,pipeline/build-index.ts,pipeline/analyze.ts,schemas/call.ts,schemas/validation.ts,schemas/vocabularies.ts(new) - Data:
data/use-cases.json(new),data/feedback.json(new),data/companies.json,data/known-entities.json,data/avoma-sync.json - Site:
site/pages/index.vue,site/pages/calls/[id].vue,site/pages/companies/[name].vue,site/pages/segments.vue,site/components/FilterBar.vue,site/composables/useCallData.ts,.claude/skills/analyze/SKILL.md - Archive:
archive/phase-1/(new structure:data/,site/,README.md),.gitignoremay need updates - Metadata:
goals.md, cycle docs, git tagphase-1-final
Open questions (Mark's input required):
- (A1) Pivot cut line: archive all 34 calls and re-extract agent-era ones under new schema, or split at a date? Which date?
- (B1) Seed the registries: named candidate use cases, source map (which companies/people are build partners, CISO advisory, investors), confirm
SourceTypevocabulary cut. - (B2) Analysis-area workshop: validate vocabularies for pain points, objections, positioning angles, competitive mentions, budget drivers — draft from positioning docs but needs working session.
- Feedback lifecycle: extract + triage, or full lifecycle (new → committed → shipped → validated)? Who owns status updates?
- (C1) Import cadence: manual
npm run fetchruns or scheduled? - Archive hosting: static snapshot under
archive/phase-1/site/sufficient, or serve at a route on new dashboard?
Key Changes
- 2026-08-20 — Workstream A complete. Phase-1 corpus (34 calls) archived to
archive/phase-1/with a browseable static site snapshot; first-everanalysis.jsongenerated before freezing (top finding: agent/MCP governance demand); taggedphase-1-final. - 2026-08-20 — Workstream B implemented.
schemas/vocabularies.tssingle source of truth (source types, unified observation stream with workflow routing, all category vocabularies); phase-2call.ts/validation.ts; rewrittenextract-call.mdwith generated vocab sections; shared prompt assembly (pipeline/prompt.ts) used by extract + batch; use-case registry seeded (7 hypotheses);feedback.jsonrollup skeleton; known-source import allowlist inavoma.ts(filters become taggers); batch.ts now honors call classifications; sourceType resolution at index build. - 2026-08-20 — C pilot: first two phase-2 calls extracted. Moto (prospect, fractional CISO, interest 5/5) and Zscaler (ciso-advisory via Sam Curry person-override, interest 4/5). Both validated clean; use-case evidence tagged with direction/evidenceKind; product-feedback stream (feature requests, ideas, concern, praise) populated. Extraction runs streaming with 32K output budget.
- 2026-08-20 — c8 site pass shipped. Dashboard reworked around the use-case evidence rollup; new
/feedbacktriage view (type chips, product-area groups, severity/status pills); observation-driven call detail (use-case evidence, product feedback, market-signal sections); company journey page (sourceType badge, accumulated evidence + feedback); sourceType filter in FilterBar;useCallDatarewritten for the phase-2 schema; site labels imported fromschemas/vocabularies.ts(D1 single-sourcing extended to the UI); sharedformatDatefixes the UTC off-by-one;clearFiltersdate bug fixed; About + README updated. Visual record captured below. - 2026-08-20 — end-of-day status. Workstreams A and B complete; C substantially complete (pilot + site pass + docs). Remaining in c8: first feedback-triage pass over the pilot's 8 feedback items (
data/feedback.jsoncuration), Apr–Aug 2026 Avoma backfill + A1 cut-line decision (re-extract agent-era Cisco calls under the phase-2 schema), callType tuning watch on next extractions, D2 architecture thread (own thread doc when started). Source-tag note: Sam Curry/Zscaler retagged prospect (potential build partner) per Mark; Moto's Mark M sits on Qpoint's security advisory board — tag decision pending.
Outcome
(In progress)