Skip to content

[Task: intentvision-6uq.1] README Restructure for Operator Onboarding#2

Merged
jeremylongshore merged 14 commits intomainfrom
feature/intentvision-6uq.1-readme-restructure
Feb 1, 2026
Merged

[Task: intentvision-6uq.1] README Restructure for Operator Onboarding#2
jeremylongshore merged 14 commits intomainfrom
feature/intentvision-6uq.1-readme-restructure

Conversation

@jeremylongshore
Copy link
Copy Markdown
Contributor

Epic & Task Reference

  • Epic: intentvision-6uq (README Overhaul)
  • Task: intentvision-6uq.1 (Restructure README)

Summary

Restructured README.md for operator-grade onboarding with:

  • CI/CD and version badges
  • Current deployment status table (Staging/Production)
  • ASCII architecture diagram
  • Developer Quickstart (setup, commands)
  • Ops Quickstart (deployment triggers, health checks, rollback)
  • Security overview
  • Work tracking (Beads) commands
  • Documentation index and roadmap

Also created comprehensive execution plan (000-docs/064-PM-PLAN-operator-grade-execution-plan.md) with 8 epics and 28 child tasks.

Changes

  • README.md - Complete restructure (240 lines)
  • 000-docs/064-PM-PLAN-operator-grade-execution-plan.md - Execution plan (1518 lines)

How to Verify

  1. Review README.md renders correctly on GitHub
  2. Verify all links work (CHANGELOG.md, docs references)
  3. Confirm health check URLs are accurate
  4. Validate architecture diagram matches current state

Rollback Plan

git revert <merge-commit-sha>

No database or infrastructure changes - pure documentation.

After Merge

  • Create AAR: 065-AA-AACR-readme-restructure.md
  • Update task: bd close intentvision-6uq.1 --reason "PR merged"
  • Begin next task: intentvision-6uq.2 (Add health/API examples)

🤖 Generated with Claude Code

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @jeremylongshore, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the project's documentation and operational readiness by overhauling the main README, introducing extensive new architectural and operational documentation, and integrating a robust ADK framework for AI agents. It also refines core project configurations, CI/CD processes, and internal tooling setup to streamline development and prepare for future production deployments.

Highlights

  • README Restructure and Enhancement: The README.md has been completely restructured for operator-grade onboarding, incorporating CI/CD and version badges, a deployment status table, an ASCII architecture diagram, and dedicated quickstart guides for developers and operations teams. It now includes sections for security, work tracking (Beads), documentation index, and roadmap.
  • Comprehensive Documentation Expansion: A significant number of new documentation files have been added to the 000-docs/ directory, including After-Action Reports (AARs), Architecture Decision Records (ADRs), Release Reports, Runbooks, and a Project Management Plan, covering phases from E2E demo to Production Deployment and ADK integration.
  • ADK (Agent Development Kit) Integration: New Python ADK scaffolding has been introduced under the adk/ directory, including orchestrator and specialist agents (metric-analyst, alert-tuner, onboarding-coach), shared A2A contracts and tools, and CI/CD scripts for Agent Engine deployment. This establishes a robust framework for AI agent integration following Google's ADK Hard Mode rules.
  • CI/CD and Project Governance Updates: The .github/ directory now includes CODEOWNERS and a pull_request_template.md to enforce review policies and standardize PRs. The Dockerfile has been updated for multi-stage builds, API server startup, and comprehensive health checks, while package.json includes new scripts for testing, seeding, and load testing.
  • Internal Tooling and Database Configuration: The .beads/issues.jsonl file has been updated with numerous new and updated task/epic entries, reflecting recent development phases. The db/config.ts has been modified to use a shared memory cache for in-memory SQLite in test mode, resolving a critical 'no such table' issue during pipeline tests.
Ignored Files
  • Ignored by pattern: .github/workflows/** (3)
    • .github/workflows/a2a-gateway-deploy.yml
    • .github/workflows/agent-engine-deploy.yml
    • .github/workflows/ci.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This is an impressive and comprehensive update that significantly improves the project's operational readiness. The complete overhaul of the README provides excellent clarity for developers and operators. The creation of the detailed execution plan and the numerous AAR/ADR documents demonstrates strong project management and architectural discipline. I'm particularly impressed with the fixes for the issues identified in the audit, such as the stabilization of the test suite and the wiring of the AgentFS logger. The Dockerfile improvements are also a critical and well-executed change. I have a few suggestions, primarily around ensuring version consistency and improving documentation clarity.

package.json Outdated
{
"name": "intentvision",
"version": "1.0.0",
"version": "0.1.0",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

There's a version mismatch across the project. This file sets the version to 0.1.0, but the new VERSION file and CHANGELOG.md both use 0.13.0. The After-Action Report 054-AA-AACR-phase-14-stabilization-gate.md also states that the version was aligned to 0.13.0. To ensure consistency and avoid potential issues with package management, please update this file and package-lock.json to match.

Suggested change
"version": "0.1.0",
"version": "0.13.0",

Dockerfile Outdated
Comment on lines 4 to 5
# Phase 13: Production Deployment Infrastructure
# Beads Task: intentvision-xyq.1
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There's a minor inconsistency in the comments here that could cause confusion. The phase is correctly identified as 'Phase 13', but the Beads Task ID intentvision-xyq.1 corresponds to Phase F. To improve traceability, it would be best to align the comments. For example, you could clarify that this is finalizing the Dockerfile for Phase 13, referencing the original task from Phase F.

# Phase 13: Production Deployment Infrastructure
# Finalizing Dockerfile for Cloud Run (original task: intentvision-xyq.1)

CLAUDE.md Outdated
Comment on lines +1 to +18
## Task Tracking (Beads / bd)
- Use `bd` for ALL tasks/issues (no markdown TODO lists).
- Start of session: `bd ready`
- Create work: `bd create "Title" -p 1 --description "Context + acceptance criteria"`
- Update status: `bd update <id> --status in_progress`
- Finish: `bd close <id> --reason "Done"`
- End of session: `bd sync` (flush/import/export + git sync)
- Manual testing safety:
- Prefer `BEADS_DIR` to isolate a workspace if needed. (`BEADS_DB` exists but is deprecated.)

**Required Sections:**

1. **Metadata Header**
- Phase number and title
- Repo/App name
- Owner
- Date/Time with timezone (CST)
- Status (DRAFT/FINAL)
- Related Issues/PRs

2. **Beads / Task IDs Touched** (MANDATORY)
```markdown
| Task ID | Status | Title |
|---------|--------|-------|
| `intentvision-XXX` | `completed` | Task title |
```

3. **Executive Summary**
- 3-5 bullet points of what was accomplished

4. **What Changed**
- New files created
- Files modified
- Schema/API changes

5. **Evidence Links / Artifacts**
- File paths
- Commit hashes (when available)
- AgentFS snapshot IDs (if applicable)

6. **Phase Completion Checklist**
- Exit criteria with PASS/FAIL status

7. **Footer**
- Confidentiality notice
- Contact information

### 6767 Standards

Files prefixed with `6767-` are **canonical standards** (cross-repo, immutable after approval):

| File | Purpose |
|------|---------|
| `6767-a-*` | Core standards |
| `6767-b-*` | Templates |
| `6767-c-*` | Process guides |
# CLAUDE.md

Standards should be referenced, not duplicated, in project-specific docs.

---
### Beads upgrades
- After upgrading `bd`, run: `bd info --whats-new`
- If `bd info` warns about hooks, run: `bd hooks install`
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The structure of this file is a bit unusual, with the 'Task Tracking' section appearing before the main # CLAUDE.md header. For better readability and a more standard document structure, I suggest moving the main header to the top of the file.

Suggested change
## Task Tracking (Beads / bd)
- Use `bd` for ALL tasks/issues (no markdown TODO lists).
- Start of session: `bd ready`
- Create work: `bd create "Title" -p 1 --description "Context + acceptance criteria"`
- Update status: `bd update <id> --status in_progress`
- Finish: `bd close <id> --reason "Done"`
- End of session: `bd sync` (flush/import/export + git sync)
- Manual testing safety:
- Prefer `BEADS_DIR` to isolate a workspace if needed. (`BEADS_DB` exists but is deprecated.)
**Required Sections:**
1. **Metadata Header**
- Phase number and title
- Repo/App name
- Owner
- Date/Time with timezone (CST)
- Status (DRAFT/FINAL)
- Related Issues/PRs
2. **Beads / Task IDs Touched** (MANDATORY)
```markdown
| Task ID | Status | Title |
|---------|--------|-------|
| `intentvision-XXX` | `completed` | Task title |
```
3. **Executive Summary**
- 3-5 bullet points of what was accomplished
4. **What Changed**
- New files created
- Files modified
- Schema/API changes
5. **Evidence Links / Artifacts**
- File paths
- Commit hashes (when available)
- AgentFS snapshot IDs (if applicable)
6. **Phase Completion Checklist**
- Exit criteria with PASS/FAIL status
7. **Footer**
- Confidentiality notice
- Contact information
### 6767 Standards
Files prefixed with `6767-` are **canonical standards** (cross-repo, immutable after approval):
| File | Purpose |
|------|---------|
| `6767-a-*` | Core standards |
| `6767-b-*` | Templates |
| `6767-c-*` | Process guides |
# CLAUDE.md
Standards should be referenced, not duplicated, in project-specific docs.
---
### Beads upgrades
- After upgrading `bd`, run: `bd info --whats-new`
- If `bd info` warns about hooks, run: `bd hooks install`
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Task Tracking (Beads / bd)
- Use `bd` for ALL tasks/issues (no markdown TODO lists).
- Start of session: `bd ready`
- Create work: `bd create "Title" -p 1 --description "Context + acceptance criteria"`
- Update status: `bd update <id> --status in_progress`
- Finish: `bd close <id> --reason "Done"`
- End of session: `bd sync` (flush/import/export + git sync)
- Manual testing safety:
- Prefer `BEADS_DIR` to isolate a workspace if needed. (`BEADS_DB` exists but is deprecated.)
### Beads upgrades
- After upgrading `bd`, run: `bd info --whats-new`
- If `bd info` warns about hooks, run: `bd hooks install`

@jeremylongshore
Copy link
Copy Markdown
Contributor Author

/gemini review

jeremylongshore and others added 14 commits February 1, 2026 00:42
Initial release of IntentVision - AI-powered SaaS metrics forecasting platform.

Features:
- Phases 0-10: Core pipeline implementation
- Phase A: Stack alignment + SaaS tables
- Phase B: Nixtla TimeGPT integration
- Phase E2E: Single-metric forecast demo
- Phase F: Cloud deployment infrastructure
- Phase 7: Cloud Firestore wiring + live tests

Infrastructure:
- Cloud Firestore with ADC support
- Cloud Run deployment ready
- GitHub Actions CI/CD pipeline
- Live Firestore test suite (opt-in)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implement Firestore-backed notification preferences with Resend email integration.

Features:
- Firestore collections for notificationChannels and notificationPreferences
- Alert dispatcher that routes alerts based on org preferences
- Resend email channel fully implemented with HTML/text templates
- Stub implementations for Slack, HTTP webhook, and PagerDuty channels
- Test alert CLI script (npm run alert:test)
- Unit and E2E tests

Beads Tasks:
- intentvision-uxb: Phase 8 Epic
- intentvision-8xq: Firestore notification preferences model
- intentvision-qb9: Wire alert engine to preferences
- intentvision-lyq: Resend email channel

Documentation:
- 000-docs/039-AA-AACR-phase-8-notification-preferences-multi-channel-alerts.md
- 000-docs/040-DR-ADRC-notification-preferences-alert-routing.md

[Task: intentvision-uxb, intentvision-8xq, intentvision-qb9, intentvision-lyq]

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 9 implementation [intentvision-4a8]:

- Added centralized environment config (src/config/environment.ts)
  - Supports local/dev/staging/prod environments
  - Environment-prefixed Firestore collections for isolation

- Added smoke test endpoint (POST /v1/internal/smoke)
  - Validates Firestore write/read/verify cycle
  - No auth required (infrastructure health check)
  - Returns environment, projectId, and timing info

- Added cloud smoke test CLI script (npm run smoke:staging)
  - Configurable URL, timeout, verbose mode
  - Health check pre-flight
  - Detailed results table

- Added CI job for cloud smoke tests
  - Runs after deploy on main branch
  - Configurable via INTENTVISION_STAGING_URL secret

- Updated Firestore client for INTENTVISION_FIRESTORE_PROJECT_ID

Beads Tasks:
- intentvision-vf7: Firestore staging config
- intentvision-cqe: Cloud Run staging wiring
- intentvision-ltq: Smoke test script
- intentvision-l2m: CI job

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…dashboard UI

Phase 10: Customer Onboarding + Plans + Sellable Alpha Shell

Backend API:
- POST /v1/tenants - Self-service tenant onboarding (org + user + API key)
- GET /v1/tenants/:slug - Get tenant info
- GET /v1/dashboard - Dashboard overview with usage stats
- GET /v1/dashboard/alerts - Paginated alert history
- GET/PUT /v1/me/preferences/notifications - User notification preferences
- POST /v1/me/preferences/notifications/test - Test notification

Plan Model:
- Free/Starter/Growth/Enterprise tiers with limits
- maxMetrics, maxAlerts, maxForecastsPerDay enforcement
- Feature gating for Slack, Webhook, TimeGPT

Services:
- plan.ts - Plan definitions and limit checking
- usage-service.ts - Usage tracking and dashboard stats
- user-preferences-service.ts - Per-user notification preferences
- firebase-auth.ts - Firebase ID token authentication

Dashboard UI:
- /dashboard - Org info, API keys, usage stats
- /alerts - Alert history table
- /settings/notifications - Channel configuration

Scripts:
- seed-demo-tenant.ts - Demo tenant creation

Documentation:
- 043-AA-AACR-phase-10-sellable-alpha-shell.md
- 044-DR-ADRC-sellable-alpha-plan-tenant-architecture.md

Beads Epic: intentvision-e9n (CLOSED)
Tasks: intentvision-yzd, intentvision-cv6, intentvision-s4z, intentvision-9xn, intentvision-5fa (ALL CLOSED)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change workspace:* to * in operator package.json (npm compatible)
- Remove unused User import in seed-demo-tenant.ts
- Remove unused apiKey destructure in seed-demo-tenant.ts

Build now succeeds, all 29 tests pass.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 11 implementation adding usage tracking and plan limit enforcement:

New Features:
- Usage event tracking for forecast_call, alert_fired, metric_ingested, api_call
- Plan limit enforcement with 429 responses when exceeded
- Admin usage API endpoints for monitoring
- Warning system at 80% usage threshold

API Endpoints:
- GET /admin/orgs/:orgId/usage/today
- GET /admin/orgs/:orgId/usage/last-30d
- GET /admin/orgs/:orgId/usage/overview

Files Added:
- packages/api/src/services/metering-service.ts
- packages/api/src/routes/admin-usage.ts
- 045-AA-AACR-phase-11-usage-metering.md
- 046-DR-ADRC-usage-metering-plan-enforcement.md

Beads Epic: intentvision-7ks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…entFS

- Fix pipeline test harness: Changed :memory: to file:memdb?mode=memory&cache=shared
  to enable shared in-memory SQLite DB across connections (220 tests now pass)
- Align VERSION (0.13.0) and CHANGELOG with Phase 12/13 releases
- Wire AgentFS decision logger with AGENTFS_ENABLED env flag
- Add health endpoint unit tests (13 tests)
- Add agent decision logger tests (9 tests)

Total test count: 381 passing (was 110 partial due to DB failures)

[Task: intentvision-rhs]

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename GitHub repo from intentvision to intent-vision
- Enable branch protection on main (require CODEOWNERS review)
- Add CODEOWNERS file (jeremylongshore owns all)
- Add PR template with review checklist
- Add CONTRIBUTING.md with git workflow docs
- Update package.json URLs to new repo name

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Comprehensive system analysis for incoming DevOps engineers:
- Architecture diagrams and data flow
- Deployment workflows (local, staging, production)
- Monitoring, security, and incident response
- Command reference and first-week checklist
- Recommendations roadmap

System health score: 72/100
Critical: Production not yet deployed, Terraform IaC pending

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add badges (CI, version, Node)
- Add Current Status section with env states
- Add ASCII architecture diagram
- Add Developer Quickstart with verified commands
- Add Ops Quickstart (deploy triggers, health, rollback)
- Add Security overview
- Add Roadmap section
- Update documentation links

[Task: intentvision-6uq.1]

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Comprehensive execution plan with:
- 8 Beads epics (P0-P2)
- 28 child tasks with AC and evidence
- Dependency map and blockers
- Branch/commit/PR standards
- AAR template

[Task: intentvision-6uq]

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- package.json: Align version to 0.13.0 (matches VERSION file)
- Dockerfile: Clarify phase/task ID comment
- CLAUDE.md: Fix header structure ordering

[Task: intentvision-6uq.1]

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@jeremylongshore jeremylongshore force-pushed the feature/intentvision-6uq.1-readme-restructure branch from 986f8e3 to c4ca726 Compare February 1, 2026 06:42
@jeremylongshore jeremylongshore merged commit 90faa94 into main Feb 1, 2026
2 of 5 checks passed
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces extensive documentation for various development phases, including After-Action Reports (AARs) and Architecture Decision Records (ADRs) covering topics such as Firestore integration, notification preferences, billing plumbing, usage metering, production deployment, and ADK agent integration. It also adds new CI/CD configuration files like .firebaserc, .github/CODEOWNERS, and a pull request template. Core code changes include updating the Dockerfile for API server deployment and optimizing its health check, and refactoring the database configuration to use a shared in-memory database for tests. Review comments highlight a version downgrade in packages/api/package.json from 0.2.0 to 0.1.0 (suggesting alignment to 0.13.0), point out the brittleness of the current getRequestDecisions implementation due to hardcoded log ID patterns, and recommend externalizing the complex Dockerfile health check logic into a separate script for better maintainability.

{
"name": "@intentvision/api",
"version": "0.2.0",
"version": "0.1.0",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The version of this package is being downgraded from 0.2.0 to 0.1.0. This is generally not recommended as it can cause issues with dependency resolution and version management, especially in a monorepo. Was this intentional? If not, it should probably be updated to a newer version, such as 0.13.0 to align with the root package.json.

Suggested change
"version": "0.1.0",
"version": "0.13.0",

Comment on lines +251 to +257
const decisions: DecisionLog[] = [];
const possibleLogIds = [
`${requestId}-route`,
`${requestId}-final`,
...Array.from({ length: 10 }, (_, i) => `${requestId}-tool-select-${i + 1}`),
...Array.from({ length: 10 }, (_, i) => `${requestId}-tool-exec-${i + 1}`),
];
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This implementation for fetching request decisions is brittle as it relies on a hardcoded list of possible log ID patterns. If new decision types are added or naming conventions change, this function will fail to retrieve all decisions silently. A more robust approach would be to use a prefix scan to list all keys for the given requestId, assuming the agentfs-sdk supports such an operation.

Comment on lines +89 to +103
HEALTHCHECK --interval=30s --timeout=10s --start-period=15s --retries=3 \
CMD node -e "const http = require('http'); \
const options = { hostname: 'localhost', port: 8080, path: '/health', timeout: 5000 }; \
http.get(options, (res) => { \
let data = ''; \
res.on('data', chunk => data += chunk); \
res.on('end', () => { \
try { \
const health = JSON.parse(data); \
process.exit(res.statusCode === 200 && health.status === 'healthy' ? 0 : 1); \
} catch (e) { \
process.exit(1); \
} \
}); \
}).on('error', () => process.exit(1)).on('timeout', () => process.exit(1));"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This HEALTHCHECK command is quite complex and embedded directly in the Dockerfile, which can make it difficult to read, test, and maintain. Consider moving this logic into a separate script (e.g., scripts/healthcheck.js) and calling that script from the HEALTHCHECK instruction. This would improve the Dockerfile's readability and make the health check logic more manageable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant