@vamsiivarmaa/proofloop 0.0.0-stage → 1.0.0-rc.2

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.
Files changed (50) hide show
  1. package/.claude-plugin/marketplace.json +15 -0
  2. package/.claude-plugin/plugin.json +10 -0
  3. package/CHANGELOG.md +51 -0
  4. package/LICENSE +202 -0
  5. package/README.md +109 -2
  6. package/SECURITY.md +5 -0
  7. package/agents/architect.md +8 -0
  8. package/agents/browser-evaluator.md +8 -0
  9. package/agents/code-reviewer.md +8 -0
  10. package/agents/evidence-evaluator.md +8 -0
  11. package/agents/implementer.md +8 -0
  12. package/agents/product-discovery.md +8 -0
  13. package/agents/researcher.md +8 -0
  14. package/agents/security-reviewer.md +8 -0
  15. package/agents/test-designer.md +8 -0
  16. package/bin/proofloop +10 -0
  17. package/dist/cli.js +33336 -0
  18. package/docs/assets/hero.gif +0 -0
  19. package/examples/protocols/fastapi-feature.yaml +28 -0
  20. package/examples/protocols/generic-change.yaml +23 -0
  21. package/examples/protocols/nextjs-feature.yaml +29 -0
  22. package/examples/protocols/node-service-bugfix.yaml +24 -0
  23. package/hooks/hooks.json +19 -0
  24. package/package.json +70 -4
  25. package/protocols/bug.yaml +31 -0
  26. package/protocols/feature.yaml +34 -0
  27. package/protocols/idea-to-product.yaml +26 -0
  28. package/protocols/performance.yaml +30 -0
  29. package/protocols/refactor.yaml +31 -0
  30. package/protocols/security.yaml +29 -0
  31. package/protocols/troubleshooting.yaml +26 -0
  32. package/protocols/verify.yaml +18 -0
  33. package/skills/approve/SKILL.md +8 -0
  34. package/skills/bug/SKILL.md +15 -0
  35. package/skills/cancel/SKILL.md +9 -0
  36. package/skills/diagnose/SKILL.md +15 -0
  37. package/skills/feature/SKILL.md +15 -0
  38. package/skills/performance/SKILL.md +15 -0
  39. package/skills/protocols/SKILL.md +9 -0
  40. package/skills/resume/SKILL.md +9 -0
  41. package/skills/setup/SKILL.md +9 -0
  42. package/skills/start-project/SKILL.md +18 -0
  43. package/skills/status/SKILL.md +9 -0
  44. package/skills/verify/SKILL.md +9 -0
  45. package/templates/architecture-decision-record.md +15 -0
  46. package/templates/blueprint.example.json +69 -0
  47. package/templates/issue-templates/task.md +11 -0
  48. package/templates/plan.md +20 -0
  49. package/templates/product-spec.md +9 -0
  50. package/templates/repository-contract.md +9 -0
@@ -0,0 +1,69 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "idea": { "oneLine": "A lead and follow-up tracker for small sales teams", "outcome": "Sales reps never miss a follow-up and managers see the pipeline without asking" },
4
+ "facts": [
5
+ { "id": "fact-1", "text": "The team of 8 reps currently tracks leads in spreadsheets", "source": "user" },
6
+ { "id": "fact-2", "text": "FastAPI generates OpenAPI documentation automatically", "source": "research", "findingId": "res-1" }
7
+ ],
8
+ "assumptions": [
9
+ { "id": "A-1", "text": "Fewer than 10,000 leads per team in year one", "impact": "medium", "status": "confirmed", "needsConfirmation": false },
10
+ { "id": "A-2", "text": "Reps use Microsoft 365 mail, so Graph API sync is acceptable", "impact": "high", "status": "unconfirmed", "needsConfirmation": true }
11
+ ],
12
+ "recommendations": [
13
+ { "id": "rec-1", "text": "Start with a modular monolith", "rationale": "A small team and modest scale do not justify service boundaries yet", "basedOn": ["fact-1", "A-1"] }
14
+ ],
15
+ "research": [
16
+ { "id": "res-1", "claim": "FastAPI generates OpenAPI documentation automatically", "url": "https://fastapi.tiangolo.com/features/", "consultedAt": "2026-10-22T09:00:00Z", "confidence": "high", "sourceType": "vendor-docs" },
17
+ { "id": "res-2", "claim": "PostgreSQL supports row-level security for tenant isolation", "url": "https://www.postgresql.org/docs/current/ddl-rowsecurity.html", "consultedAt": "2026-10-22T09:05:00Z", "confidence": "high", "sourceType": "vendor-docs" }
18
+ ],
19
+ "personas": [
20
+ { "id": "P-1", "name": "Sales rep", "goals": ["Log a lead in under 30 seconds", "Know today's follow-ups"], "painPoints": ["Leads scattered across spreadsheets"] },
21
+ { "id": "P-2", "name": "Sales manager", "goals": ["See pipeline value by stage"], "painPoints": ["Status meetings to learn what is stuck"] }
22
+ ],
23
+ "journeys": [
24
+ { "id": "J-1", "personaId": "P-1", "name": "Capture and follow up", "steps": ["Create lead", "Schedule follow-up", "Receive reminder", "Log outcome"] }
25
+ ],
26
+ "requirements": [
27
+ { "id": "R-1", "text": "Reps can create and edit leads", "kind": "functional" },
28
+ { "id": "R-2", "text": "Reps get reminders for due follow-ups", "kind": "functional" },
29
+ { "id": "R-3", "text": "Managers see leads grouped by pipeline stage", "kind": "functional" },
30
+ { "id": "R-4", "text": "Pipeline view loads quickly", "kind": "nfr", "measurable": "p95 under 2 seconds at 200 concurrent users on staging hardware" },
31
+ { "id": "R-5", "text": "Mail sync attaches emails to leads", "kind": "integration" },
32
+ { "id": "R-6", "text": "Teams can only access their own data", "kind": "security" },
33
+ { "id": "R-7", "text": "Supports the expected year-one data volume", "kind": "capacity", "measurable": "10,000 leads and 200 concurrent users per team" }
34
+ ],
35
+ "features": [
36
+ { "id": "F-1", "name": "Lead capture", "description": "Create, edit and search leads", "mvp": true, "personaIds": ["P-1"], "requirementIds": ["R-1"] },
37
+ { "id": "F-2", "name": "Follow-up reminders", "description": "Schedule follow-ups and notify reps when due", "mvp": true, "personaIds": ["P-1"], "requirementIds": ["R-2"] },
38
+ { "id": "F-3", "name": "Pipeline board", "description": "Leads by stage with totals", "mvp": true, "personaIds": ["P-2"], "requirementIds": ["R-3", "R-4"] },
39
+ { "id": "F-4", "name": "Mail sync", "description": "Attach emails to leads", "mvp": false, "personaIds": ["P-1"], "requirementIds": ["R-5"] }
40
+ ],
41
+ "successMetrics": [
42
+ { "id": "SM-1", "metric": "Overdue follow-ups per rep per week", "target": "fewer than 2", "measurement": "query on follow-up due vs completed timestamps" }
43
+ ],
44
+ "architecture": {
45
+ "stack": [
46
+ { "id": "S-1", "area": "backend", "choice": "FastAPI (Python)", "alternatives": [{ "name": "Express (Node)", "tradeoff": "team is stronger in Python" }], "tradeoffs": "Fast to build and self-documenting; async ecosystem is smaller than Node", "satisfies": ["R-1", "R-2", "R-3"], "citations": ["res-1"] },
47
+ { "id": "S-2", "area": "database", "choice": "PostgreSQL with row-level security", "alternatives": [{ "name": "MongoDB", "tradeoff": "weaker relational reporting for pipeline totals" }], "tradeoffs": "Strong consistency and RLS for tenant isolation; needs migrations discipline", "satisfies": ["R-4", "R-6", "R-7"], "citations": ["res-2"] },
48
+ { "id": "S-3", "area": "integration", "choice": "Microsoft Graph mail adapter behind a port", "alternatives": [{ "name": "IMAP polling", "tradeoff": "works with any provider but is slower and harder to secure" }], "tradeoffs": "Adapter keeps the provider replaceable; requires tenant admin consent", "satisfies": ["R-5"], "citations": [] }
49
+ ],
50
+ "dataModel": [{ "entity": "lead", "fields": ["id", "tenant_id", "name", "stage", "created_at_utc"] }],
51
+ "apiBoundaries": ["REST /v1 with explicit versioning", "every request carries X-Tenant-ID"],
52
+ "integrations": [{ "name": "Microsoft Graph", "purpose": "mail sync", "risk": "OAuth consent and rate limits" }],
53
+ "securityModel": "RBAC with tenant isolation enforced at API, service, repository and database layers",
54
+ "operational": "Single region managed hosting, daily backups, structured logs with PII masked",
55
+ "capacity": { "assumptions": ["10,000 leads per team", "200 concurrent users per team"], "targets": [{ "metric": "pipeline view p95", "target": "under 2 seconds at the stated load" }] }
56
+ },
57
+ "risks": [{ "id": "risk-1", "text": "Graph API consent blocks mail sync", "likelihood": "medium", "impact": "medium", "mitigation": "Ship the MVP without mail sync; make it milestone 4" }],
58
+ "roadmap": {
59
+ "milestones": [
60
+ { "id": "M-1", "title": "Foundation and lead capture", "goal": "Auth, tenant isolation and lead CRUD", "dependencies": [], "featureIds": ["F-1"], "acceptanceCriteria": ["A rep can create and find a lead", "Another team cannot read it"], "verification": "API tests plus a Playwright journey for lead creation" },
61
+ { "id": "M-2", "title": "Pipeline board", "goal": "Managers see stages and totals", "dependencies": ["M-1"], "featureIds": ["F-3"], "acceptanceCriteria": ["Board totals match the database", "p95 under 2 seconds on the seeded dataset"], "verification": "Load test with recorded baseline and result" },
62
+ { "id": "M-3", "title": "Follow-up reminders", "goal": "Due follow-ups notify reps", "dependencies": ["M-1"], "featureIds": ["F-2"], "acceptanceCriteria": ["A due follow-up produces exactly one reminder"], "verification": "Integration test with a fake clock" },
63
+ { "id": "M-4", "title": "Mail sync", "goal": "Attach emails to leads", "dependencies": ["M-2", "M-3"], "featureIds": ["F-4"], "acceptanceCriteria": ["Sent mail appears on the lead"], "verification": "Contract tests against the adapter port", "assumptionIds": ["A-2"] }
64
+ ]
65
+ },
66
+ "openDecisions": [
67
+ { "id": "D-1", "question": "Is Microsoft 365 the mail provider for every team?", "defaultChoice": "Assume yes and confirm before milestone 4", "impact": "high", "relatedAssumptionIds": ["A-2"] }
68
+ ]
69
+ }
@@ -0,0 +1,11 @@
1
+ ## Objective
2
+ <what and why>
3
+
4
+ ## Preconditions and dependencies
5
+ ## Likely affected files (hypothesis until verified)
6
+ ## Acceptance criteria and tests
7
+ ## Risk
8
+ ## Definition of done
9
+ - [ ] acceptance criteria verified with recorded evidence
10
+ - [ ] applicable tests pass on the final commit
11
+ - [ ] docs updated when behavior, commands or architecture change
@@ -0,0 +1,20 @@
1
+ # Plan
2
+
3
+ **Intent:** <one sentence>
4
+ **Outcome:** <observable result>
5
+ **Risk:** low | medium | high — <why>
6
+
7
+ ## Assumptions
8
+ - A-1 [impact] confirmed|unconfirmed: <text>
9
+
10
+ ## Affected modules (confirmed vs hypothesis)
11
+ - `path` (confirmed|hypothesis) — <reason>
12
+
13
+ ## Acceptance criteria
14
+ - AC-1: <testable statement> — verified by `<test>` | manual (<reason>)
15
+
16
+ ## Test plan
17
+ - T-1 [unit|integration|e2e|security] <description> → gate `<id>`
18
+
19
+ ## Tasks (dependency graph)
20
+ - task-1 <title>; scope `<globs>`; covers AC-1; done when <condition>
@@ -0,0 +1,9 @@
1
+ # Product specification
2
+
3
+ ## Outcome and success metrics
4
+ ## Personas and journeys
5
+ ## Features (MVP vs later)
6
+ ## Requirements (functional, non-functional, integration, security, capacity with measurable targets)
7
+ ## Architecture and stack (alternatives and trade-offs)
8
+ ## Risks and open decisions
9
+ ## Roadmap and verification strategy
@@ -0,0 +1,9 @@
1
+ # Repository contract (for coding agents)
2
+
3
+ Keep this short; link to deeper docs instead of pasting them.
4
+
5
+ - Build / lint / typecheck / test commands: <exact commands>
6
+ - Architecture map: <3-5 lines + link to docs/architecture>
7
+ - Hard invariants: <e.g. every query filters by tenant_id>
8
+ - Never touch: <paths>
9
+ - How to run the app for browser checks: <command + URL + seed command>