orbital-command 0.1.0
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/LICENSE +21 -0
- package/README.md +396 -0
- package/bin/orbital.js +362 -0
- package/dist/assets/WorkflowVisualizer-BZ21PIIF.js +84 -0
- package/dist/assets/WorkflowVisualizer-BZV40eAE.css +1 -0
- package/dist/assets/charts-D__PA1zp.js +72 -0
- package/dist/assets/index-D1G6i0nS.css +1 -0
- package/dist/assets/index-DpItvKpf.js +419 -0
- package/dist/assets/ui-BvF022GT.js +53 -0
- package/dist/assets/vendor-Dzv9lrRc.js +59 -0
- package/dist/index.html +19 -0
- package/dist/scanner-sweep.png +0 -0
- package/dist/server/server/adapters/index.js +34 -0
- package/dist/server/server/adapters/iterm2-adapter.js +29 -0
- package/dist/server/server/adapters/subprocess-adapter.js +21 -0
- package/dist/server/server/adapters/terminal-adapter.js +1 -0
- package/dist/server/server/config.js +156 -0
- package/dist/server/server/database.js +90 -0
- package/dist/server/server/index.js +372 -0
- package/dist/server/server/init.js +811 -0
- package/dist/server/server/parsers/event-parser.js +64 -0
- package/dist/server/server/parsers/scope-parser.js +188 -0
- package/dist/server/server/routes/config-routes.js +163 -0
- package/dist/server/server/routes/data-routes.js +461 -0
- package/dist/server/server/routes/dispatch-routes.js +215 -0
- package/dist/server/server/routes/git-routes.js +92 -0
- package/dist/server/server/routes/scope-routes.js +215 -0
- package/dist/server/server/routes/sprint-routes.js +116 -0
- package/dist/server/server/routes/version-routes.js +130 -0
- package/dist/server/server/routes/workflow-routes.js +185 -0
- package/dist/server/server/schema.js +90 -0
- package/dist/server/server/services/batch-orchestrator.js +253 -0
- package/dist/server/server/services/claude-session-service.js +352 -0
- package/dist/server/server/services/config-service.js +132 -0
- package/dist/server/server/services/deploy-service.js +51 -0
- package/dist/server/server/services/event-service.js +63 -0
- package/dist/server/server/services/gate-service.js +83 -0
- package/dist/server/server/services/git-service.js +309 -0
- package/dist/server/server/services/github-service.js +145 -0
- package/dist/server/server/services/readiness-service.js +184 -0
- package/dist/server/server/services/scope-cache.js +72 -0
- package/dist/server/server/services/scope-service.js +424 -0
- package/dist/server/server/services/sprint-orchestrator.js +312 -0
- package/dist/server/server/services/sprint-service.js +293 -0
- package/dist/server/server/services/workflow-service.js +397 -0
- package/dist/server/server/utils/cc-hooks-parser.js +49 -0
- package/dist/server/server/utils/dispatch-utils.js +305 -0
- package/dist/server/server/utils/logger.js +86 -0
- package/dist/server/server/utils/terminal-launcher.js +388 -0
- package/dist/server/server/utils/worktree-manager.js +98 -0
- package/dist/server/server/watchers/event-watcher.js +81 -0
- package/dist/server/server/watchers/scope-watcher.js +33 -0
- package/dist/server/shared/api-types.js +5 -0
- package/dist/server/shared/default-workflow.json +616 -0
- package/dist/server/shared/workflow-config.js +44 -0
- package/dist/server/shared/workflow-engine.js +353 -0
- package/index.html +15 -0
- package/package.json +110 -0
- package/postcss.config.js +6 -0
- package/schemas/orbital.config.schema.json +83 -0
- package/scripts/postinstall.js +24 -0
- package/scripts/start.sh +20 -0
- package/server/adapters/index.ts +41 -0
- package/server/adapters/iterm2-adapter.ts +37 -0
- package/server/adapters/subprocess-adapter.ts +25 -0
- package/server/adapters/terminal-adapter.ts +24 -0
- package/server/config.ts +234 -0
- package/server/database.ts +107 -0
- package/server/index.ts +452 -0
- package/server/init.ts +891 -0
- package/server/parsers/event-parser.ts +74 -0
- package/server/parsers/scope-parser.ts +240 -0
- package/server/routes/config-routes.ts +182 -0
- package/server/routes/data-routes.ts +548 -0
- package/server/routes/dispatch-routes.ts +275 -0
- package/server/routes/git-routes.ts +112 -0
- package/server/routes/scope-routes.ts +262 -0
- package/server/routes/sprint-routes.ts +142 -0
- package/server/routes/version-routes.ts +156 -0
- package/server/routes/workflow-routes.ts +198 -0
- package/server/schema.ts +90 -0
- package/server/services/batch-orchestrator.ts +286 -0
- package/server/services/claude-session-service.ts +441 -0
- package/server/services/config-service.ts +151 -0
- package/server/services/deploy-service.ts +98 -0
- package/server/services/event-service.ts +98 -0
- package/server/services/gate-service.ts +126 -0
- package/server/services/git-service.ts +391 -0
- package/server/services/github-service.ts +183 -0
- package/server/services/readiness-service.ts +250 -0
- package/server/services/scope-cache.ts +81 -0
- package/server/services/scope-service.ts +476 -0
- package/server/services/sprint-orchestrator.ts +361 -0
- package/server/services/sprint-service.ts +415 -0
- package/server/services/workflow-service.ts +461 -0
- package/server/utils/cc-hooks-parser.ts +70 -0
- package/server/utils/dispatch-utils.ts +395 -0
- package/server/utils/logger.ts +109 -0
- package/server/utils/terminal-launcher.ts +462 -0
- package/server/utils/worktree-manager.ts +104 -0
- package/server/watchers/event-watcher.ts +100 -0
- package/server/watchers/scope-watcher.ts +38 -0
- package/shared/api-types.ts +20 -0
- package/shared/default-workflow.json +616 -0
- package/shared/workflow-config.ts +170 -0
- package/shared/workflow-engine.ts +427 -0
- package/src/App.tsx +33 -0
- package/src/components/AgentBadge.tsx +40 -0
- package/src/components/BatchPreflightModal.tsx +115 -0
- package/src/components/CardDisplayToggle.tsx +74 -0
- package/src/components/ColumnHeaderActions.tsx +55 -0
- package/src/components/ColumnMenu.tsx +99 -0
- package/src/components/DeployHistory.tsx +141 -0
- package/src/components/DispatchModal.tsx +164 -0
- package/src/components/DispatchPopover.tsx +139 -0
- package/src/components/DragOverlay.tsx +25 -0
- package/src/components/DriftSidebar.tsx +140 -0
- package/src/components/EnvironmentStrip.tsx +88 -0
- package/src/components/ErrorBoundary.tsx +62 -0
- package/src/components/FilterChip.tsx +105 -0
- package/src/components/GateIndicator.tsx +33 -0
- package/src/components/IdeaDetailModal.tsx +190 -0
- package/src/components/IdeaFormDialog.tsx +113 -0
- package/src/components/KanbanColumn.tsx +201 -0
- package/src/components/MarkdownRenderer.tsx +114 -0
- package/src/components/NeonGrid.tsx +128 -0
- package/src/components/PromotionQueue.tsx +89 -0
- package/src/components/ScopeCard.tsx +234 -0
- package/src/components/ScopeDetailModal.tsx +255 -0
- package/src/components/ScopeFilterBar.tsx +152 -0
- package/src/components/SearchInput.tsx +102 -0
- package/src/components/SessionPanel.tsx +335 -0
- package/src/components/SprintContainer.tsx +303 -0
- package/src/components/SprintDependencyDialog.tsx +78 -0
- package/src/components/SprintPreflightModal.tsx +138 -0
- package/src/components/StatusBar.tsx +168 -0
- package/src/components/SwimCell.tsx +67 -0
- package/src/components/SwimLaneRow.tsx +94 -0
- package/src/components/SwimlaneBoardView.tsx +108 -0
- package/src/components/VersionBadge.tsx +139 -0
- package/src/components/ViewModeSelector.tsx +114 -0
- package/src/components/config/AgentChip.tsx +53 -0
- package/src/components/config/AgentCreateDialog.tsx +321 -0
- package/src/components/config/AgentEditor.tsx +175 -0
- package/src/components/config/DirectoryTree.tsx +582 -0
- package/src/components/config/FileEditor.tsx +550 -0
- package/src/components/config/HookChip.tsx +50 -0
- package/src/components/config/StageCard.tsx +198 -0
- package/src/components/config/TransitionZone.tsx +173 -0
- package/src/components/config/UnifiedWorkflowPipeline.tsx +216 -0
- package/src/components/config/WorkflowPipeline.tsx +161 -0
- package/src/components/source-control/BranchList.tsx +93 -0
- package/src/components/source-control/BranchPanel.tsx +105 -0
- package/src/components/source-control/CommitLog.tsx +100 -0
- package/src/components/source-control/CommitRow.tsx +47 -0
- package/src/components/source-control/GitHubPanel.tsx +110 -0
- package/src/components/source-control/GitHubSetupGuide.tsx +52 -0
- package/src/components/source-control/GitOverviewBar.tsx +101 -0
- package/src/components/source-control/PullRequestList.tsx +69 -0
- package/src/components/source-control/WorktreeList.tsx +80 -0
- package/src/components/ui/badge.tsx +41 -0
- package/src/components/ui/button.tsx +55 -0
- package/src/components/ui/card.tsx +78 -0
- package/src/components/ui/dialog.tsx +94 -0
- package/src/components/ui/popover.tsx +33 -0
- package/src/components/ui/scroll-area.tsx +54 -0
- package/src/components/ui/separator.tsx +28 -0
- package/src/components/ui/tabs.tsx +52 -0
- package/src/components/ui/toggle-switch.tsx +35 -0
- package/src/components/ui/tooltip.tsx +27 -0
- package/src/components/workflow/AddEdgeDialog.tsx +217 -0
- package/src/components/workflow/AddListDialog.tsx +201 -0
- package/src/components/workflow/ChecklistEditor.tsx +239 -0
- package/src/components/workflow/CommandPrefixManager.tsx +118 -0
- package/src/components/workflow/ConfigSettingsPanel.tsx +189 -0
- package/src/components/workflow/DirectionSelector.tsx +133 -0
- package/src/components/workflow/DispatchConfigPanel.tsx +180 -0
- package/src/components/workflow/EdgeDetailPanel.tsx +236 -0
- package/src/components/workflow/EdgePropertyEditor.tsx +251 -0
- package/src/components/workflow/EditToolbar.tsx +138 -0
- package/src/components/workflow/HookDetailPanel.tsx +250 -0
- package/src/components/workflow/HookExecutionLog.tsx +24 -0
- package/src/components/workflow/HookSourceModal.tsx +129 -0
- package/src/components/workflow/HooksDashboard.tsx +363 -0
- package/src/components/workflow/ListPropertyEditor.tsx +251 -0
- package/src/components/workflow/MigrationPreviewDialog.tsx +237 -0
- package/src/components/workflow/MovementRulesPanel.tsx +188 -0
- package/src/components/workflow/NodeDetailPanel.tsx +245 -0
- package/src/components/workflow/PresetSelector.tsx +414 -0
- package/src/components/workflow/SkillCommandBuilder.tsx +174 -0
- package/src/components/workflow/WorkflowEdgeComponent.tsx +145 -0
- package/src/components/workflow/WorkflowNode.tsx +147 -0
- package/src/components/workflow/graphLayout.ts +186 -0
- package/src/components/workflow/mergeHooks.ts +85 -0
- package/src/components/workflow/useEditHistory.ts +88 -0
- package/src/components/workflow/useWorkflowEditor.ts +262 -0
- package/src/components/workflow/validateConfig.ts +70 -0
- package/src/hooks/useActiveDispatches.ts +198 -0
- package/src/hooks/useBoardSettings.ts +170 -0
- package/src/hooks/useCardDisplay.ts +57 -0
- package/src/hooks/useCcHooks.ts +24 -0
- package/src/hooks/useConfigTree.ts +51 -0
- package/src/hooks/useEnforcementRules.ts +46 -0
- package/src/hooks/useEvents.ts +59 -0
- package/src/hooks/useFileEditor.ts +165 -0
- package/src/hooks/useGates.ts +57 -0
- package/src/hooks/useIdeaActions.ts +53 -0
- package/src/hooks/useKanbanDnd.ts +410 -0
- package/src/hooks/useOrbitalConfig.ts +54 -0
- package/src/hooks/usePipeline.ts +47 -0
- package/src/hooks/usePipelineData.ts +338 -0
- package/src/hooks/useReconnect.ts +25 -0
- package/src/hooks/useScopeFilters.ts +125 -0
- package/src/hooks/useScopeSessions.ts +44 -0
- package/src/hooks/useScopes.ts +67 -0
- package/src/hooks/useSearch.ts +67 -0
- package/src/hooks/useSettings.tsx +187 -0
- package/src/hooks/useSocket.ts +25 -0
- package/src/hooks/useSourceControl.ts +105 -0
- package/src/hooks/useSprintPreflight.ts +55 -0
- package/src/hooks/useSprints.ts +154 -0
- package/src/hooks/useStatusBarHighlight.ts +18 -0
- package/src/hooks/useSwimlaneBoardSettings.ts +104 -0
- package/src/hooks/useTheme.ts +9 -0
- package/src/hooks/useTransitionReadiness.ts +53 -0
- package/src/hooks/useVersion.ts +155 -0
- package/src/hooks/useViolations.ts +65 -0
- package/src/hooks/useWorkflow.tsx +125 -0
- package/src/hooks/useZoomModifier.ts +19 -0
- package/src/index.css +797 -0
- package/src/layouts/DashboardLayout.tsx +113 -0
- package/src/lib/collisionDetection.ts +20 -0
- package/src/lib/scope-fields.ts +61 -0
- package/src/lib/swimlane.ts +146 -0
- package/src/lib/utils.ts +15 -0
- package/src/main.tsx +19 -0
- package/src/socket.ts +11 -0
- package/src/types/index.ts +497 -0
- package/src/views/AgentFeed.tsx +339 -0
- package/src/views/DeployPipeline.tsx +59 -0
- package/src/views/EnforcementView.tsx +378 -0
- package/src/views/PrimitivesConfig.tsx +500 -0
- package/src/views/QualityGates.tsx +1012 -0
- package/src/views/ScopeBoard.tsx +454 -0
- package/src/views/SessionTimeline.tsx +516 -0
- package/src/views/Settings.tsx +183 -0
- package/src/views/SourceControl.tsx +95 -0
- package/src/views/WorkflowVisualizer.tsx +382 -0
- package/tailwind.config.js +161 -0
- package/templates/agents/AUTO-INVOKE.md +180 -0
- package/templates/agents/CONFLICT-RESOLUTION.md +128 -0
- package/templates/agents/QUICK-REFERENCE.md +122 -0
- package/templates/agents/README.md +188 -0
- package/templates/agents/SKILL-TRIGGERS.md +100 -0
- package/templates/agents/blue-team/frontend-designer.md +424 -0
- package/templates/agents/green-team/architect.md +526 -0
- package/templates/agents/green-team/rules-enforcer.md +131 -0
- package/templates/agents/red-team/attacker-learned.md +24 -0
- package/templates/agents/red-team/attacker.md +486 -0
- package/templates/agents/red-team/chaos.md +548 -0
- package/templates/agents/reference/component-registry.md +82 -0
- package/templates/agents/workflows/full-mode.md +218 -0
- package/templates/agents/workflows/quick-mode.md +118 -0
- package/templates/agents/workflows/security-mode.md +283 -0
- package/templates/anti-patterns/dangerous-shortcuts.md +427 -0
- package/templates/config/agent-triggers.json +92 -0
- package/templates/hooks/agent-team-gate.sh +31 -0
- package/templates/hooks/agent-trigger.sh +97 -0
- package/templates/hooks/block-push.sh +66 -0
- package/templates/hooks/block-workarounds.sh +61 -0
- package/templates/hooks/blocker-check.sh +28 -0
- package/templates/hooks/completion-checklist.sh +28 -0
- package/templates/hooks/decision-capture.sh +15 -0
- package/templates/hooks/dependency-check.sh +27 -0
- package/templates/hooks/end-session.sh +31 -0
- package/templates/hooks/exploration-logger.sh +37 -0
- package/templates/hooks/files-changed-summary.sh +37 -0
- package/templates/hooks/get-session-id.sh +49 -0
- package/templates/hooks/git-commit-guard.sh +34 -0
- package/templates/hooks/init-session.sh +93 -0
- package/templates/hooks/orbital-emit.sh +79 -0
- package/templates/hooks/orbital-report-deploy.sh +78 -0
- package/templates/hooks/orbital-report-gates.sh +40 -0
- package/templates/hooks/orbital-report-violation.sh +36 -0
- package/templates/hooks/orbital-scope-update.sh +53 -0
- package/templates/hooks/phase-verify-reminder.sh +26 -0
- package/templates/hooks/review-gate-check.sh +82 -0
- package/templates/hooks/scope-commit-logger.sh +37 -0
- package/templates/hooks/scope-create-cleanup.sh +36 -0
- package/templates/hooks/scope-create-gate.sh +80 -0
- package/templates/hooks/scope-create-tracker.sh +17 -0
- package/templates/hooks/scope-file-sync.sh +53 -0
- package/templates/hooks/scope-gate.sh +35 -0
- package/templates/hooks/scope-helpers.sh +188 -0
- package/templates/hooks/scope-lifecycle-gate.sh +139 -0
- package/templates/hooks/scope-prepare.sh +244 -0
- package/templates/hooks/scope-transition.sh +172 -0
- package/templates/hooks/session-enforcer.sh +143 -0
- package/templates/hooks/time-tracker.sh +33 -0
- package/templates/lessons-learned.md +15 -0
- package/templates/orbital.config.json +35 -0
- package/templates/presets/development.json +42 -0
- package/templates/presets/gitflow.json +712 -0
- package/templates/presets/minimal.json +23 -0
- package/templates/quick/rules.md +218 -0
- package/templates/scopes/_template.md +255 -0
- package/templates/settings-hooks.json +98 -0
- package/templates/skills/git-commit/SKILL.md +85 -0
- package/templates/skills/git-dev/SKILL.md +99 -0
- package/templates/skills/git-hotfix/SKILL.md +223 -0
- package/templates/skills/git-main/SKILL.md +84 -0
- package/templates/skills/git-production/SKILL.md +165 -0
- package/templates/skills/git-staging/SKILL.md +112 -0
- package/templates/skills/scope-create/SKILL.md +81 -0
- package/templates/skills/scope-fix-review/SKILL.md +168 -0
- package/templates/skills/scope-implement/SKILL.md +110 -0
- package/templates/skills/scope-post-review/SKILL.md +144 -0
- package/templates/skills/scope-pre-review/SKILL.md +211 -0
- package/templates/skills/scope-verify/SKILL.md +201 -0
- package/templates/skills/session-init/SKILL.md +62 -0
- package/templates/skills/session-resume/SKILL.md +201 -0
- package/templates/skills/test-checks/SKILL.md +171 -0
- package/templates/skills/test-code-review/SKILL.md +252 -0
- package/tsconfig.json +25 -0
- package/vite.config.ts +38 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: full-mode
|
|
3
|
+
description: Default workflow for features and significant changes. Runs all triggered agents with complete synthesis.
|
|
4
|
+
tokens: ~2K
|
|
5
|
+
load-when: Default for features and significant changes
|
|
6
|
+
last-verified: 2026-01-11
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Full Mode Workflow
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
- New features
|
|
14
|
+
- Significant changes
|
|
15
|
+
- Refactoring
|
|
16
|
+
- Any security-sensitive changes
|
|
17
|
+
- **Default mode** - use unless explicitly requesting quick mode
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Workflow Steps
|
|
22
|
+
|
|
23
|
+
### Phase 1: Triage
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
27
|
+
│ 🎯 TASK TRIAGE │
|
|
28
|
+
│ │
|
|
29
|
+
│ 1. Analyze task description │
|
|
30
|
+
│ 2. Identify files likely to be affected │
|
|
31
|
+
│ 3. Determine which agents are triggered │
|
|
32
|
+
│ 4. Check for high-signal patterns │
|
|
33
|
+
│ 5. Display triage summary │
|
|
34
|
+
└─────────────────────────────────────────────────────────────┘
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Phase 2: Council Review
|
|
38
|
+
|
|
39
|
+
Run triggered agents **in parallel**:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
43
|
+
│ PARALLEL AGENT EXECUTION │
|
|
44
|
+
│ │
|
|
45
|
+
│ 🏗️ Architect → [reviewing architecture impact] │
|
|
46
|
+
│ [Domain Expert] → [analyzing domain impact] │
|
|
47
|
+
│ 💥 Chaos Agent → [imagining failure modes] │
|
|
48
|
+
│ 🎨 Frontend Designer → [considering UI implications] │
|
|
49
|
+
│ │
|
|
50
|
+
│ Waiting for all agents... │
|
|
51
|
+
└─────────────────────────────────────────────────────────────┘
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Phase 3: Synthesis
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
58
|
+
│ 📋 AGENT SYNTHESIS │
|
|
59
|
+
│ │
|
|
60
|
+
│ CONSENSUS: │
|
|
61
|
+
│ - [Points all agents agree on] │
|
|
62
|
+
│ │
|
|
63
|
+
│ CONCERNS (by severity): │
|
|
64
|
+
│ 🚫 BLOCKERS: │
|
|
65
|
+
│ - [Must fix before proceeding] │
|
|
66
|
+
│ │
|
|
67
|
+
│ ⚠️ WARNINGS: │
|
|
68
|
+
│ - [Should address] │
|
|
69
|
+
│ │
|
|
70
|
+
│ 💡 SUGGESTIONS: │
|
|
71
|
+
│ - [Nice to have] │
|
|
72
|
+
│ │
|
|
73
|
+
│ CONFLICTS: │
|
|
74
|
+
│ - [If any, present for human decision] │
|
|
75
|
+
└─────────────────────────────────────────────────────────────┘
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Phase 4: Review Completion Gate ✓
|
|
79
|
+
|
|
80
|
+
**Before proceeding to implementation, verify:**
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
84
|
+
│ ✓ REVIEW COMPLETION GATE │
|
|
85
|
+
├─────────────────────────────────────────────────────────────┤
|
|
86
|
+
│ │
|
|
87
|
+
│ All triggered agents applied: │
|
|
88
|
+
│ □ [Agent 1] - perspective applied │
|
|
89
|
+
│ □ [Agent 2] - perspective applied │
|
|
90
|
+
│ □ ... │
|
|
91
|
+
│ │
|
|
92
|
+
│ Critical questions answered: │
|
|
93
|
+
│ □ "What happens to resources if this fails?" │
|
|
94
|
+
│ □ "What user input reaches this code?" │
|
|
95
|
+
│ □ "What state are we in if this throws?" │
|
|
96
|
+
│ □ "Can user A access user B's resources?" │
|
|
97
|
+
│ │
|
|
98
|
+
│ Blockers resolved: │
|
|
99
|
+
│ □ No unresolved 🚫 BLOCKER items │
|
|
100
|
+
│ │
|
|
101
|
+
│ ─────────────────────────────────────────────────────────── │
|
|
102
|
+
│ All boxes checked? → Proceed to implementation │
|
|
103
|
+
│ Missing boxes? → Address before implementing │
|
|
104
|
+
└─────────────────────────────────────────────────────────────┘
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Phase 5: Implementation
|
|
108
|
+
|
|
109
|
+
Implement with agent guidance. Domain experts available on-demand for questions.
|
|
110
|
+
|
|
111
|
+
### Phase 6: Stress Test
|
|
112
|
+
|
|
113
|
+
After implementation, run red team **in parallel**:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
117
|
+
│ 🔴 RED TEAM STRESS TEST │
|
|
118
|
+
│ │
|
|
119
|
+
│ 🗡️ Attacker → [looking for exploits] │
|
|
120
|
+
│ 💥 Chaos → [finding failure modes + verifying tests] │
|
|
121
|
+
│ │
|
|
122
|
+
│ Cross-reference prompts: │
|
|
123
|
+
│ - "Given the data flow, can any step be exploited?" │
|
|
124
|
+
│ - "Given the state transitions, what if crash mid-way?" │
|
|
125
|
+
│ │
|
|
126
|
+
│ Waiting for red team... │
|
|
127
|
+
└─────────────────────────────────────────────────────────────┘
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Phase 7: Quality Gate
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
134
|
+
│ 📋 RULES ENFORCER - Pre-Commit Check │
|
|
135
|
+
│ │
|
|
136
|
+
│ ✅ All 20 rules passed │
|
|
137
|
+
│ │
|
|
138
|
+
│ Ready to commit. │
|
|
139
|
+
└─────────────────────────────────────────────────────────────┘
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Phase 8: Post-Review Ritual ✓
|
|
143
|
+
|
|
144
|
+
**Before committing, always ask:**
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
148
|
+
│ 🔄 POST-REVIEW RITUAL │
|
|
149
|
+
├─────────────────────────────────────────────────────────────┤
|
|
150
|
+
│ │
|
|
151
|
+
│ Learning Capture: │
|
|
152
|
+
│ │
|
|
153
|
+
│ 1. Did any agent find a pattern that should become a │
|
|
154
|
+
│ permanent check? │
|
|
155
|
+
│ → Add to that agent's "Learned Patterns" table │
|
|
156
|
+
│ │
|
|
157
|
+
│ 2. Did we miss something that was caught later? │
|
|
158
|
+
│ → Add to relevant agent's "Known [X]" table │
|
|
159
|
+
│ │
|
|
160
|
+
│ 3. Did any agent flag a false positive repeatedly? │
|
|
161
|
+
│ → Consider refining that agent's checklist │
|
|
162
|
+
│ │
|
|
163
|
+
│ Test Gaps: │
|
|
164
|
+
│ │
|
|
165
|
+
│ 4. Did 💥 Chaos identify failure modes without tests? │
|
|
166
|
+
│ → Note as test debt or write tests now │
|
|
167
|
+
│ │
|
|
168
|
+
│ ─────────────────────────────────────────────────────────── │
|
|
169
|
+
│ Ritual complete? → Commit │
|
|
170
|
+
└─────────────────────────────────────────────────────────────┘
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Example Full Flow
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
USER: "Add ability to set custom retry policy per resource"
|
|
179
|
+
|
|
180
|
+
SYSTEM:
|
|
181
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
182
|
+
│ TASK TRIAGE │
|
|
183
|
+
│ │
|
|
184
|
+
│ Task: Add custom retry policy per resource │
|
|
185
|
+
│ Mode: FULL │
|
|
186
|
+
│ │
|
|
187
|
+
│ Files likely affected: │
|
|
188
|
+
│ - src/services/resourceService.ts │
|
|
189
|
+
│ - src/types/resource.ts │
|
|
190
|
+
│ - database migration │
|
|
191
|
+
│ - frontend/src/pages/ResourceSetup.tsx │
|
|
192
|
+
│ │
|
|
193
|
+
│ Agents triggered: │
|
|
194
|
+
│ - Architect │
|
|
195
|
+
│ - Chaos Agent │
|
|
196
|
+
│ - Frontend Designer │
|
|
197
|
+
│ - Attacker (user input) │
|
|
198
|
+
│ │
|
|
199
|
+
│ Invoking 4 agents... │
|
|
200
|
+
└─────────────────────────────────────────────────────────────┘
|
|
201
|
+
|
|
202
|
+
[Phase 2: Agents run in parallel]
|
|
203
|
+
[Phase 3: Synthesis shown]
|
|
204
|
+
[Phase 4: Review Completion Gate - all checked]
|
|
205
|
+
[Phase 5: Implementation proceeds]
|
|
206
|
+
[Phase 6: Red team stress test]
|
|
207
|
+
[Phase 7: Rules enforcer runs]
|
|
208
|
+
[Phase 8: Post-review ritual - update Learned Patterns if needed]
|
|
209
|
+
[Commit]
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Related
|
|
215
|
+
|
|
216
|
+
- [quick-mode.md](./quick-mode.md) - For tiny changes
|
|
217
|
+
- [security-mode.md](./security-mode.md) - For security-sensitive changes
|
|
218
|
+
- [../QUICK-REFERENCE.md](../QUICK-REFERENCE.md) - One-page overview
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quick-mode
|
|
3
|
+
description: Explicitly requested for tiny changes like typos and comments. Only runs Rules Enforcer.
|
|
4
|
+
tokens: ~0.5K
|
|
5
|
+
load-when: Explicitly requested for tiny changes
|
|
6
|
+
last-verified: 2026-01-11
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Quick Mode Workflow
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
Request with: `"quick mode: [task]"`
|
|
14
|
+
|
|
15
|
+
**Valid for:**
|
|
16
|
+
- Typo fixes
|
|
17
|
+
- Comment updates
|
|
18
|
+
- Small documentation changes
|
|
19
|
+
- Trivial bug fixes (< 10 lines)
|
|
20
|
+
- Configuration value tweaks
|
|
21
|
+
|
|
22
|
+
**CANNOT use for:**
|
|
23
|
+
- Files matching hard triggers (auth, encryption, security-sensitive)
|
|
24
|
+
- New API endpoints
|
|
25
|
+
- Database migrations
|
|
26
|
+
- Any security-related changes
|
|
27
|
+
- Changes affecting security-sensitive operations
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Workflow Steps
|
|
32
|
+
|
|
33
|
+
### Step 1: Eligibility Check
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
37
|
+
│ 🎯 QUICK MODE REQUEST │
|
|
38
|
+
│ │
|
|
39
|
+
│ Task: [description] │
|
|
40
|
+
│ │
|
|
41
|
+
│ Eligibility check: │
|
|
42
|
+
│ ✅ Not touching security files │
|
|
43
|
+
│ ✅ Not touching auth files │
|
|
44
|
+
│ ✅ Not a new endpoint │
|
|
45
|
+
│ ✅ Not a migration │
|
|
46
|
+
│ │
|
|
47
|
+
│ APPROVED for quick mode │
|
|
48
|
+
└─────────────────────────────────────────────────────────────┘
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
If NOT eligible:
|
|
52
|
+
```
|
|
53
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
54
|
+
│ 🎯 QUICK MODE REQUEST - DENIED │
|
|
55
|
+
│ │
|
|
56
|
+
│ Task: [description] │
|
|
57
|
+
│ │
|
|
58
|
+
│ ❌ Cannot use quick mode: touches auth*.ts │
|
|
59
|
+
│ │
|
|
60
|
+
│ Escalating to FULL MODE... │
|
|
61
|
+
└─────────────────────────────────────────────────────────────┘
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Step 2: Implementation
|
|
65
|
+
|
|
66
|
+
Make the change directly.
|
|
67
|
+
|
|
68
|
+
### Step 3: Quality Gate
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
72
|
+
│ 📋 RULES ENFORCER - Pre-Commit Check │
|
|
73
|
+
│ │
|
|
74
|
+
│ ✅ All rules passed │
|
|
75
|
+
│ │
|
|
76
|
+
│ Ready to commit. │
|
|
77
|
+
└─────────────────────────────────────────────────────────────┘
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Auto-Escalation
|
|
83
|
+
|
|
84
|
+
If during implementation you discover the change is more significant:
|
|
85
|
+
|
|
86
|
+
1. Stop immediately
|
|
87
|
+
2. Re-triage as FULL MODE
|
|
88
|
+
3. Invoke appropriate agents
|
|
89
|
+
4. Continue with full workflow
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Example
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
USER: "quick mode: fix typo in README"
|
|
97
|
+
|
|
98
|
+
SYSTEM:
|
|
99
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
100
|
+
│ 🎯 QUICK MODE - APPROVED │
|
|
101
|
+
│ │
|
|
102
|
+
│ Task: Fix typo in README │
|
|
103
|
+
│ Only 📋 Rules Enforcer will run │
|
|
104
|
+
└─────────────────────────────────────────────────────────────┘
|
|
105
|
+
|
|
106
|
+
[Make change]
|
|
107
|
+
|
|
108
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
109
|
+
│ 📋 Rules passed. Ready to commit. │
|
|
110
|
+
└─────────────────────────────────────────────────────────────┘
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Related
|
|
116
|
+
|
|
117
|
+
- [full-mode.md](./full-mode.md) - Default workflow
|
|
118
|
+
- [security-mode.md](./security-mode.md) - Security workflow
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-mode
|
|
3
|
+
description: Auto-triggered for security-sensitive changes. Runs Attacker agent before AND after implementation.
|
|
4
|
+
tokens: ~2K
|
|
5
|
+
load-when: Auto-triggered for security-sensitive changes
|
|
6
|
+
last-verified: 2026-01-11
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Security Mode Workflow
|
|
10
|
+
|
|
11
|
+
## When Active
|
|
12
|
+
|
|
13
|
+
**Auto-triggered for:**
|
|
14
|
+
- New API endpoints
|
|
15
|
+
- Authentication/authorization changes
|
|
16
|
+
- Encryption or secret handling
|
|
17
|
+
- Resource access operations
|
|
18
|
+
- User input handling
|
|
19
|
+
- Multi-tenant data access
|
|
20
|
+
|
|
21
|
+
**Cannot be bypassed or downgraded.**
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Workflow Steps
|
|
26
|
+
|
|
27
|
+
### Phase 1: Pre-Implementation Security Review (Required Depth)
|
|
28
|
+
|
|
29
|
+
Before writing ANY code, 🗡️ Attacker MUST complete this analysis:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
33
|
+
│ 🔐 SECURITY MODE - Pre-Implementation Review │
|
|
34
|
+
├─────────────────────────────────────────────────────────────┤
|
|
35
|
+
│ │
|
|
36
|
+
│ 🗡️ Attacker analyzing planned changes... │
|
|
37
|
+
│ │
|
|
38
|
+
│ ═══════════════════════════════════════════════════════════ │
|
|
39
|
+
│ │
|
|
40
|
+
│ ATTACK SURFACE IDENTIFICATION: │
|
|
41
|
+
│ │
|
|
42
|
+
│ Endpoints/Functions affected: │
|
|
43
|
+
│ - [endpoint/function 1] │
|
|
44
|
+
│ - [endpoint/function 2] │
|
|
45
|
+
│ │
|
|
46
|
+
│ ═══════════════════════════════════════════════════════════ │
|
|
47
|
+
│ │
|
|
48
|
+
│ USER INPUT ANALYSIS: │
|
|
49
|
+
│ │
|
|
50
|
+
│ | Input | Source | Type | Validation Needed | │
|
|
51
|
+
│ |-------|--------|------|-------------------| │
|
|
52
|
+
│ | resourceId | URL param | string | UUID format, ownership |│
|
|
53
|
+
│ | limit | body | number | Range 1-1000 | │
|
|
54
|
+
│ │
|
|
55
|
+
│ ═══════════════════════════════════════════════════════════ │
|
|
56
|
+
│ │
|
|
57
|
+
│ AUTHORIZATION ANALYSIS: │
|
|
58
|
+
│ │
|
|
59
|
+
│ Resource ownership verification: │
|
|
60
|
+
│ - How is user identity established? [JWT/session/etc] │
|
|
61
|
+
│ - How is resource ownership verified? [DB check/etc] │
|
|
62
|
+
│ - What happens if verification is skipped? [impact] │
|
|
63
|
+
│ │
|
|
64
|
+
│ ═══════════════════════════════════════════════════════════ │
|
|
65
|
+
│ │
|
|
66
|
+
│ POTENTIAL ABUSE SCENARIOS: │
|
|
67
|
+
│ │
|
|
68
|
+
│ 1. [Abuse scenario 1] │
|
|
69
|
+
│ Attack: [How attacker exploits this] │
|
|
70
|
+
│ Impact: [What they gain] │
|
|
71
|
+
│ Prevention: [Required check] │
|
|
72
|
+
│ │
|
|
73
|
+
│ 2. [Abuse scenario 2] │
|
|
74
|
+
│ Attack: [How attacker exploits this] │
|
|
75
|
+
│ Impact: [What they gain] │
|
|
76
|
+
│ Prevention: [Required check] │
|
|
77
|
+
│ │
|
|
78
|
+
│ ═══════════════════════════════════════════════════════════ │
|
|
79
|
+
│ │
|
|
80
|
+
│ SECURITY REQUIREMENTS (Must implement): │
|
|
81
|
+
│ │
|
|
82
|
+
│ □ [Specific requirement 1] │
|
|
83
|
+
│ □ [Specific requirement 2] │
|
|
84
|
+
│ □ [Specific requirement 3] │
|
|
85
|
+
│ │
|
|
86
|
+
│ ─────────────────────────────────────────────────────────── │
|
|
87
|
+
│ │
|
|
88
|
+
│ Pre-implementation review COMPLETE. │
|
|
89
|
+
│ Proceed with implementation using these requirements. │
|
|
90
|
+
│ │
|
|
91
|
+
│ ⚠️ If any section above is unclear or incomplete: │
|
|
92
|
+
│ → Clarify design before implementing │
|
|
93
|
+
└─────────────────────────────────────────────────────────────┘
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Minimum requirements for Phase 1:**
|
|
97
|
+
- At least 1 endpoint/function identified
|
|
98
|
+
- All user inputs listed with validation needs
|
|
99
|
+
- Authorization flow documented
|
|
100
|
+
- At least 2 abuse scenarios imagined
|
|
101
|
+
- At least 2 security requirements specified
|
|
102
|
+
|
|
103
|
+
**If these minimums cannot be met, the design is too vague → clarify before proceeding.**
|
|
104
|
+
|
|
105
|
+
### Phase 2: Implementation
|
|
106
|
+
|
|
107
|
+
Implement following security requirements from Phase 1.
|
|
108
|
+
|
|
109
|
+
For each security requirement:
|
|
110
|
+
```
|
|
111
|
+
□ Requirement implemented
|
|
112
|
+
□ Test written to verify
|
|
113
|
+
□ Negative test (attack blocked)
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Phase 3: Post-Implementation Security Audit
|
|
117
|
+
|
|
118
|
+
After code is written, 🗡️ Attacker performs full audit:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
122
|
+
│ 🔐 SECURITY MODE - Post-Implementation Audit │
|
|
123
|
+
├─────────────────────────────────────────────────────────────┤
|
|
124
|
+
│ │
|
|
125
|
+
│ 🗡️ Attacker reviewing implementation... │
|
|
126
|
+
│ │
|
|
127
|
+
│ FILES REVIEWED: │
|
|
128
|
+
│ - [list of files] │
|
|
129
|
+
│ │
|
|
130
|
+
│ SECURITY REQUIREMENTS VERIFICATION: │
|
|
131
|
+
│ │
|
|
132
|
+
│ From Pre-Implementation: │
|
|
133
|
+
│ ✅ Requirement 1: [How it was implemented] │
|
|
134
|
+
│ ✅ Requirement 2: [How it was implemented] │
|
|
135
|
+
│ 🚫 Requirement 3: [NOT IMPLEMENTED - must fix] │
|
|
136
|
+
│ │
|
|
137
|
+
│ ADDITIONAL CHECKS: │
|
|
138
|
+
│ │
|
|
139
|
+
│ ✅ Authentication: @requireAuth present │
|
|
140
|
+
│ ✅ Authorization: Ownership check on line 45 │
|
|
141
|
+
│ ⚠️ Input validation: Missing max length on field X │
|
|
142
|
+
│ ✅ Error handling: No sensitive data leaked │
|
|
143
|
+
│ ✅ Logging: No secrets in logs │
|
|
144
|
+
│ │
|
|
145
|
+
│ ISSUES TO FIX: │
|
|
146
|
+
│ - [Issue 1]: [specific fix needed] │
|
|
147
|
+
│ - [Issue 2]: [specific fix needed] │
|
|
148
|
+
│ │
|
|
149
|
+
└─────────────────────────────────────────────────────────────┘
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Phase 4: Fix Security Issues
|
|
153
|
+
|
|
154
|
+
Any issues found in Phase 3 must be fixed. No exceptions.
|
|
155
|
+
|
|
156
|
+
### Phase 5: Re-Audit
|
|
157
|
+
|
|
158
|
+
If fixes were made, 🗡️ Attacker re-audits the fixes:
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
162
|
+
│ 🔐 SECURITY MODE - Fix Verification │
|
|
163
|
+
│ │
|
|
164
|
+
│ Changes reviewed: │
|
|
165
|
+
│ - [fix 1]: ✅ Correctly implemented │
|
|
166
|
+
│ - [fix 2]: ✅ Correctly implemented │
|
|
167
|
+
│ │
|
|
168
|
+
│ No new issues introduced: ✅ │
|
|
169
|
+
│ │
|
|
170
|
+
│ Security review PASSED. │
|
|
171
|
+
└─────────────────────────────────────────────────────────────┘
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Phase 6: Quality Gate + Post-Review Ritual
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
178
|
+
│ 📋 RULES ENFORCER - Pre-Commit Check │
|
|
179
|
+
│ │
|
|
180
|
+
│ ✅ All rules passed │
|
|
181
|
+
│ │
|
|
182
|
+
│ Ready to commit. │
|
|
183
|
+
└─────────────────────────────────────────────────────────────┘
|
|
184
|
+
|
|
185
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
186
|
+
│ 🔄 POST-REVIEW RITUAL │
|
|
187
|
+
│ │
|
|
188
|
+
│ □ New security pattern discovered? → Add to 🗡️ Attacker │
|
|
189
|
+
│ □ New attack vector for this codebase? → Add to Known │
|
|
190
|
+
│ □ Test gaps for security scenarios? → Note or write tests │
|
|
191
|
+
│ │
|
|
192
|
+
│ Ritual complete? → Commit │
|
|
193
|
+
└─────────────────────────────────────────────────────────────┘
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Security Review Checklist
|
|
199
|
+
|
|
200
|
+
### New Endpoint
|
|
201
|
+
```
|
|
202
|
+
□ @requireAuth middleware applied
|
|
203
|
+
□ User ownership verified (not just authenticated)
|
|
204
|
+
□ All parameters validated (type, length, range, pattern)
|
|
205
|
+
□ Rate limiting applied
|
|
206
|
+
□ Error responses don't leak internals
|
|
207
|
+
□ Audit logging for sensitive actions
|
|
208
|
+
□ Tested with other user's resource IDs (should fail)
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Resource Operation
|
|
212
|
+
```
|
|
213
|
+
□ User can only access their own resources
|
|
214
|
+
□ Secrets never logged
|
|
215
|
+
□ Encryption used correctly
|
|
216
|
+
□ State changes are atomic
|
|
217
|
+
□ Lock/unlock pattern correct
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### User Input
|
|
221
|
+
```
|
|
222
|
+
□ Type validation
|
|
223
|
+
□ Length limits
|
|
224
|
+
□ Range validation (min/max)
|
|
225
|
+
□ Pattern validation (UUID, format checks)
|
|
226
|
+
□ Sanitization if rendered
|
|
227
|
+
□ No SQL injection (using parameterized queries)
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Cannot Bypass
|
|
233
|
+
|
|
234
|
+
Even if you think a security change is "trivial":
|
|
235
|
+
- Security mode STILL activates
|
|
236
|
+
- Both pre AND post reviews STILL run
|
|
237
|
+
- All issues MUST be fixed
|
|
238
|
+
- Post-review ritual MUST complete
|
|
239
|
+
|
|
240
|
+
No exceptions.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Example
|
|
245
|
+
|
|
246
|
+
```
|
|
247
|
+
USER: "Add new endpoint to get resource details"
|
|
248
|
+
|
|
249
|
+
SYSTEM:
|
|
250
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
251
|
+
│ SECURITY MODE ACTIVATED │
|
|
252
|
+
│ │
|
|
253
|
+
│ Reason: New API endpoint │
|
|
254
|
+
│ │
|
|
255
|
+
│ Attacker will review BEFORE and AFTER implementation │
|
|
256
|
+
└─────────────────────────────────────────────────────────────┘
|
|
257
|
+
|
|
258
|
+
[Phase 1: Pre-implementation review with required depth]
|
|
259
|
+
- Attack surface: GET /resources/:resourceId/details
|
|
260
|
+
- User inputs: resourceId (UUID)
|
|
261
|
+
- Authorization: Must verify user owns resource
|
|
262
|
+
- Abuse scenarios:
|
|
263
|
+
1. User A queries User B's resource (IDOR)
|
|
264
|
+
2. Enumerate resource IDs to find active ones
|
|
265
|
+
- Security requirements:
|
|
266
|
+
□ Verify req.user.id === resource.user_id
|
|
267
|
+
□ Rate limit to prevent enumeration
|
|
268
|
+
|
|
269
|
+
[Phase 2: Implementation with requirements]
|
|
270
|
+
[Phase 3: Post-implementation audit]
|
|
271
|
+
[Phase 4: Fix any issues]
|
|
272
|
+
[Phase 5: Verify fixes]
|
|
273
|
+
[Phase 6: Rules enforcer + Post-review ritual]
|
|
274
|
+
[Commit]
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Related
|
|
280
|
+
|
|
281
|
+
- [full-mode.md](./full-mode.md) - Standard workflow
|
|
282
|
+
- [../red-team/attacker.md](../red-team/attacker.md) - Attacker agent spec
|
|
283
|
+
- [../QUICK-REFERENCE.md](../QUICK-REFERENCE.md) - One-page overview
|