specweave 0.1.8 → 0.3.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/CLAUDE.md +600 -0
- package/README.md +263 -88
- package/bin/install-all.sh +1 -1
- package/bin/install-commands.sh +3 -3
- package/bin/specweave.js +39 -9
- package/dist/adapters/adapter-base.d.ts +1 -1
- package/dist/adapters/adapter-base.d.ts.map +1 -1
- package/dist/adapters/adapter-base.js +6 -41
- package/dist/adapters/adapter-base.js.map +1 -1
- package/dist/adapters/adapter-interface.js +1 -2
- package/dist/adapters/adapter-interface.js.map +1 -1
- package/dist/adapters/adapter-loader.d.ts +86 -0
- package/dist/adapters/adapter-loader.d.ts.map +1 -0
- package/dist/adapters/adapter-loader.js +216 -0
- package/dist/adapters/adapter-loader.js.map +1 -0
- package/dist/adapters/agents-md-generator.d.ts +48 -0
- package/dist/adapters/agents-md-generator.d.ts.map +1 -0
- package/dist/adapters/agents-md-generator.js +132 -0
- package/dist/adapters/agents-md-generator.js.map +1 -0
- package/dist/adapters/claude/adapter.d.ts +2 -2
- package/dist/adapters/claude/adapter.d.ts.map +1 -1
- package/dist/adapters/claude/adapter.js +5 -42
- package/dist/adapters/claude/adapter.js.map +1 -1
- package/dist/adapters/claude-md-generator.d.ts +78 -0
- package/dist/adapters/claude-md-generator.d.ts.map +1 -0
- package/dist/adapters/claude-md-generator.js +246 -0
- package/dist/adapters/claude-md-generator.js.map +1 -0
- package/dist/adapters/codex/adapter.d.ts +50 -0
- package/dist/adapters/codex/adapter.d.ts.map +1 -0
- package/dist/adapters/codex/adapter.js +316 -0
- package/dist/adapters/codex/adapter.js.map +1 -0
- package/dist/adapters/copilot/adapter.d.ts +10 -9
- package/dist/adapters/copilot/adapter.d.ts.map +1 -1
- package/dist/adapters/copilot/adapter.js +35 -100
- package/dist/adapters/copilot/adapter.js.map +1 -1
- package/dist/adapters/cursor/adapter.d.ts +8 -6
- package/dist/adapters/cursor/adapter.d.ts.map +1 -1
- package/dist/adapters/cursor/adapter.js +47 -130
- package/dist/adapters/cursor/adapter.js.map +1 -1
- package/dist/adapters/doc-generator.d.ts +69 -0
- package/dist/adapters/doc-generator.d.ts.map +1 -0
- package/dist/adapters/doc-generator.js +247 -0
- package/dist/adapters/doc-generator.js.map +1 -0
- package/dist/adapters/gemini/adapter.d.ts +50 -0
- package/dist/adapters/gemini/adapter.d.ts.map +1 -0
- package/dist/adapters/gemini/adapter.js +281 -0
- package/dist/adapters/gemini/adapter.js.map +1 -0
- package/dist/adapters/generic/adapter.d.ts +7 -4
- package/dist/adapters/generic/adapter.d.ts.map +1 -1
- package/dist/adapters/generic/adapter.js +60 -59
- package/dist/adapters/generic/adapter.js.map +1 -1
- package/dist/cli/commands/init.d.ts +3 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +272 -170
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +22 -58
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +27 -64
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/core/credentials-manager.d.ts +90 -0
- package/dist/core/credentials-manager.d.ts.map +1 -0
- package/dist/core/credentials-manager.js +271 -0
- package/dist/core/credentials-manager.js.map +1 -0
- package/dist/core/project-structure-detector.d.ts +92 -0
- package/dist/core/project-structure-detector.d.ts.map +1 -0
- package/dist/core/project-structure-detector.js +289 -0
- package/dist/core/project-structure-detector.js.map +1 -0
- package/dist/core/rfc-generator-v2.d.ts +149 -0
- package/dist/core/rfc-generator-v2.d.ts.map +1 -0
- package/dist/core/rfc-generator-v2.js +399 -0
- package/dist/core/rfc-generator-v2.js.map +1 -0
- package/dist/core/rfc-generator.d.ts +147 -0
- package/dist/core/rfc-generator.d.ts.map +1 -0
- package/dist/core/rfc-generator.js +434 -0
- package/dist/core/rfc-generator.js.map +1 -0
- package/dist/integrations/ado/ado-client.d.ts +123 -0
- package/dist/integrations/ado/ado-client.d.ts.map +1 -0
- package/dist/integrations/ado/ado-client.js +398 -0
- package/dist/integrations/ado/ado-client.js.map +1 -0
- package/dist/integrations/jira/jira-client.d.ts +139 -0
- package/dist/integrations/jira/jira-client.d.ts.map +1 -0
- package/dist/integrations/jira/jira-client.js +386 -0
- package/dist/integrations/jira/jira-client.js.map +1 -0
- package/dist/integrations/jira/jira-incremental-mapper.d.ts +75 -0
- package/dist/integrations/jira/jira-incremental-mapper.d.ts.map +1 -0
- package/dist/integrations/jira/jira-incremental-mapper.js +474 -0
- package/dist/integrations/jira/jira-incremental-mapper.js.map +1 -0
- package/dist/integrations/jira/jira-mapper.d.ts +105 -0
- package/dist/integrations/jira/jira-mapper.d.ts.map +1 -0
- package/dist/integrations/jira/jira-mapper.js +494 -0
- package/dist/integrations/jira/jira-mapper.js.map +1 -0
- package/dist/testing/test-generator.d.ts +117 -0
- package/dist/testing/test-generator.d.ts.map +1 -0
- package/dist/testing/test-generator.js +370 -0
- package/dist/testing/test-generator.js.map +1 -0
- package/dist/utils/auto-install.d.ts +3 -0
- package/dist/utils/auto-install.d.ts.map +1 -1
- package/dist/utils/auto-install.js +16 -82
- package/dist/utils/auto-install.js.map +1 -1
- package/dist/utils/esm-helpers.d.ts +50 -0
- package/dist/utils/esm-helpers.d.ts.map +1 -0
- package/dist/utils/esm-helpers.js +57 -0
- package/dist/utils/esm-helpers.js.map +1 -0
- package/package.json +16 -7
- package/src/adapters/README.md +1 -2
- package/src/adapters/adapter-base.ts +6 -3
- package/src/adapters/adapter-loader.ts +261 -0
- package/src/adapters/agents-md-generator.ts +162 -0
- package/src/adapters/claude/README.md +6 -14
- package/src/adapters/claude/adapter.ts +4 -4
- package/src/adapters/claude-md-generator.ts +311 -0
- package/src/adapters/codex/README.md +105 -0
- package/src/adapters/codex/adapter.ts +333 -0
- package/src/adapters/copilot/adapter.ts +36 -65
- package/src/adapters/cursor/README.md +0 -2
- package/src/adapters/cursor/adapter.ts +46 -92
- package/src/adapters/doc-generator.ts +331 -0
- package/src/adapters/gemini/README.md +97 -0
- package/src/adapters/gemini/adapter.ts +298 -0
- package/src/adapters/generic/adapter.ts +61 -57
- package/src/adapters/registry.yaml +86 -25
- package/src/agents/devops/AGENT.md +16 -18
- package/src/agents/docs-writer/AGENT.md +2 -2
- package/src/agents/pm/AGENT.md +1 -50
- package/src/commands/README.md +134 -111
- package/src/commands/{build.md → specweave.do.md} +185 -72
- package/src/commands/{done.md → specweave.done.md} +3 -3
- package/src/commands/{inc.md → specweave.inc.md} +4 -4
- package/src/commands/specweave.increment.md +383 -0
- package/src/commands/specweave.md +430 -0
- package/src/commands/specweave.next.md +495 -0
- package/src/commands/specweave.progress.md +258 -0
- package/src/commands/specweave.sync-docs.md +665 -0
- package/src/commands/specweave.sync-github.md +269 -0
- package/src/commands/specweave.sync-jira.md +197 -0
- package/src/commands/{validate.md → specweave.validate.md} +4 -4
- package/src/hooks/README.md +19 -29
- package/src/hooks/post-task-completion.sh +25 -30
- package/src/skills/ado-sync/README.md +1 -36
- package/src/skills/bmad-method-expert/SKILL.md +1 -3
- package/src/skills/brownfield-analyzer/SKILL.md +429 -23
- package/src/skills/brownfield-onboarder/SKILL.md +221 -8
- package/src/skills/context-loader/SKILL.md +239 -617
- package/src/skills/context-optimizer/SKILL.md +0 -30
- package/src/skills/github-sync/SKILL.md +1 -19
- package/src/skills/increment-planner/SKILL.md +64 -18
- package/src/skills/increment-quality-judge/SKILL.md +1 -36
- package/src/skills/jira-sync/README.md +1 -38
- package/src/skills/role-orchestrator/README.md +1 -22
- package/src/skills/role-orchestrator/SKILL.md +1 -59
- package/src/skills/skill-router/SKILL.md +0 -18
- package/src/skills/spec-kit-expert/SKILL.md +1 -3
- package/src/skills/specweave-detector/SKILL.md +225 -275
- package/src/skills/task-builder/README.md +1 -7
- package/src/templates/AGENTS.md.template +334 -0
- package/src/templates/CLAUDE.md.template +131 -297
- package/src/templates/README.md.template +115 -23
- package/src/templates/environments/minimal/README.md +0 -1
- package/INSTALL.md +0 -848
- package/SPECWEAVE.md +0 -711
- package/src/adapters/copilot/.github/copilot/instructions.md +0 -376
- package/src/adapters/cursor/.cursorrules +0 -325
- package/src/adapters/generic/SPECWEAVE-MANUAL.md +0 -676
- package/src/commands/create-project.md +0 -528
- package/src/commands/generate-docs.md +0 -623
- package/src/commands/increment.md +0 -223
- package/src/commands/review-docs.md +0 -331
- package/src/commands/sync-github.md +0 -115
- package/src/skills/ado-sync/test-cases/test-1.yaml +0 -9
- package/src/skills/ado-sync/test-cases/test-2.yaml +0 -8
- package/src/skills/ado-sync/test-cases/test-3.yaml +0 -9
- package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +0 -48
- package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +0 -39
- package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +0 -44
- package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +0 -45
- package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +0 -97
- package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +0 -109
- package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +0 -98
- package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +0 -75
- package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +0 -52
- package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +0 -63
- package/src/skills/cost-optimizer/test-results/README.md +0 -46
- package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +0 -23
- package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +0 -24
- package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +0 -23
- package/src/skills/diagrams-architect/test-cases/test-1-c4-context.yaml +0 -13
- package/src/skills/diagrams-architect/test-cases/test-2-sequence-diagram.yaml +0 -13
- package/src/skills/diagrams-architect/test-cases/test-3-er-diagram.yaml +0 -13
- package/src/skills/diagrams-generator/test-cases/test-1.yaml +0 -9
- package/src/skills/diagrams-generator/test-cases/test-2.yaml +0 -9
- package/src/skills/diagrams-generator/test-cases/test-3.yaml +0 -8
- package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/dotnet-backend/test-cases/test-1-rest-api.yaml +0 -14
- package/src/skills/dotnet-backend/test-cases/test-2-authentication.yaml +0 -13
- package/src/skills/dotnet-backend/test-cases/test-3-minimal-api.yaml +0 -13
- package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +0 -54
- package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +0 -64
- package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +0 -74
- package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +0 -98
- package/src/skills/figma-designer/test-cases/test-1-design-system.yaml +0 -13
- package/src/skills/figma-designer/test-cases/test-2-component-library.yaml +0 -13
- package/src/skills/figma-designer/test-cases/test-3-responsive-layout.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-1-design-to-react.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-2-storybook.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-3-design-tokens.yaml +0 -13
- package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +0 -22
- package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +0 -21
- package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +0 -18
- package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +0 -29
- package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +0 -27
- package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +0 -28
- package/src/skills/frontend/test-cases/test-1-react-component.yaml +0 -13
- package/src/skills/frontend/test-cases/test-2-form-validation.yaml +0 -13
- package/src/skills/frontend/test-cases/test-3-state-management.yaml +0 -13
- package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +0 -71
- package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +0 -85
- package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +0 -126
- package/src/skills/hetzner-provisioner/test-results/README.md +0 -259
- package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +0 -27
- package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +0 -30
- package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +0 -24
- package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +0 -95
- package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +0 -108
- package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +0 -87
- package/src/skills/jira-sync/test-cases/test-1.yaml +0 -9
- package/src/skills/jira-sync/test-cases/test-2.yaml +0 -9
- package/src/skills/jira-sync/test-cases/test-3.yaml +0 -10
- package/src/skills/nextjs/test-cases/test-1-app-router.yaml +0 -13
- package/src/skills/nextjs/test-cases/test-2-server-actions.yaml +0 -13
- package/src/skills/nextjs/test-cases/test-3-api-routes.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-1-express-api.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-2-prisma-orm.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-3-authentication.yaml +0 -13
- package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/python-backend/test-cases/test-1-fastapi-crud.yaml +0 -13
- package/src/skills/python-backend/test-cases/test-2-sqlalchemy.yaml +0 -13
- package/src/skills/python-backend/test-cases/test-3-authentication.yaml +0 -13
- package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +0 -98
- package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +0 -73
- package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +0 -121
- package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +0 -145
- package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +0 -149
- package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +0 -33
- package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +0 -42
- package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +0 -50
- package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +0 -148
- package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +0 -190
- package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +0 -233
- package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +0 -212
- package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +0 -461
- package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +0 -366
- package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/specweave-ado-mapper/test-cases/test-1-export-to-ado.yaml +0 -13
- package/src/skills/specweave-ado-mapper/test-cases/test-2-import-from-ado.yaml +0 -13
- package/src/skills/specweave-ado-mapper/test-cases/test-3-bidirectional-sync.yaml +0 -13
- package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +0 -37
- package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +0 -37
- package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +0 -34
- package/src/skills/specweave-jira-mapper/test-cases/test-1-export-to-jira.yaml +0 -13
- package/src/skills/specweave-jira-mapper/test-cases/test-2-import-from-jira.yaml +0 -13
- package/src/skills/specweave-jira-mapper/test-cases/test-3-sync-status.yaml +0 -13
- package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +0 -12
- package/src/templates/config.yaml +0 -351
- /package/src/commands/{list-increments.md → specweave.list-increments.md} +0 -0
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Export Suggestions to Tasks"
|
|
3
|
-
description: "Quality assessment with suggestions exported to tasks.md"
|
|
4
|
-
skill: increment-quality-judge
|
|
5
|
-
priority: P2
|
|
6
|
-
estimated_time: "2-3 minutes"
|
|
7
|
-
|
|
8
|
-
input:
|
|
9
|
-
prompt: "Assess quality and export suggestions to tasks"
|
|
10
|
-
spec_content: |
|
|
11
|
-
# User Profile Management
|
|
12
|
-
|
|
13
|
-
## Overview
|
|
14
|
-
Allow users to manage their profile information.
|
|
15
|
-
|
|
16
|
-
## Acceptance Criteria
|
|
17
|
-
- User can update profile (name, email, avatar)
|
|
18
|
-
- Changes saved successfully
|
|
19
|
-
- Validation for email format
|
|
20
|
-
|
|
21
|
-
## Security
|
|
22
|
-
- Email verification required for email changes
|
|
23
|
-
|
|
24
|
-
export_to_tasks: true
|
|
25
|
-
increment_id: "0025-user-profile"
|
|
26
|
-
|
|
27
|
-
expected_output:
|
|
28
|
-
overall_score: 0.70-0.80
|
|
29
|
-
score_range: "acceptable" # 70-79
|
|
30
|
-
|
|
31
|
-
issues_found:
|
|
32
|
-
count: 3-5
|
|
33
|
-
typical_issues:
|
|
34
|
-
- "Performance requirements not specified"
|
|
35
|
-
- "Avatar upload constraints unclear (size, format)"
|
|
36
|
-
- "Concurrent edit conflict resolution not defined"
|
|
37
|
-
|
|
38
|
-
suggestions:
|
|
39
|
-
count: 3-5
|
|
40
|
-
typical_suggestions:
|
|
41
|
-
- priority: "high"
|
|
42
|
-
description: "Add performance requirements"
|
|
43
|
-
example: "Profile update completes in <1s, avatar upload <5s"
|
|
44
|
-
|
|
45
|
-
- priority: "high"
|
|
46
|
-
description: "Specify avatar constraints"
|
|
47
|
-
example: "Max size: 5MB, formats: JPG/PNG/WebP, dimensions: 512x512"
|
|
48
|
-
|
|
49
|
-
- priority: "medium"
|
|
50
|
-
description: "Define edit conflict resolution"
|
|
51
|
-
example: "Last-write-wins or optimistic locking with version field"
|
|
52
|
-
|
|
53
|
-
export_result:
|
|
54
|
-
file_path: ".specweave/increments/0025-user-profile/tasks.md"
|
|
55
|
-
tasks_added: 3-5
|
|
56
|
-
format: "markdown checklist"
|
|
57
|
-
|
|
58
|
-
tasks_content: |
|
|
59
|
-
## Quality Improvements (from AI assessment)
|
|
60
|
-
|
|
61
|
-
- [ ] Add performance requirements (HIGH)
|
|
62
|
-
- Profile update: <1s
|
|
63
|
-
- Avatar upload: <5s
|
|
64
|
-
|
|
65
|
-
- [ ] Specify avatar upload constraints (HIGH)
|
|
66
|
-
- Max size: 5MB
|
|
67
|
-
- Formats: JPG, PNG, WebP
|
|
68
|
-
- Dimensions: 512x512
|
|
69
|
-
|
|
70
|
-
- [ ] Define edit conflict resolution (MEDIUM)
|
|
71
|
-
- Strategy: Last-write-wins or optimistic locking
|
|
72
|
-
|
|
73
|
-
validation:
|
|
74
|
-
- "Suggestions exported to tasks.md"
|
|
75
|
-
- "Tasks in markdown checklist format"
|
|
76
|
-
- "Each task labeled with priority (HIGH/MEDIUM/LOW)"
|
|
77
|
-
- "Tasks include specific details, not vague"
|
|
78
|
-
- "File created at correct path"
|
|
79
|
-
- "At least 3 tasks added"
|
|
80
|
-
|
|
81
|
-
success_criteria:
|
|
82
|
-
- "Export completes without errors"
|
|
83
|
-
- "Tasks are actionable with clear details"
|
|
84
|
-
- "Priority labels match suggestion priorities"
|
|
85
|
-
- "Tasks integrate cleanly with existing tasks.md"
|
|
86
|
-
- "Can check off tasks as they're completed"
|
|
87
|
-
---
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Coordinate with Agent"
|
|
3
|
-
description: "Tests if jira-sync properly delegates to specweave-jira-mapper agent"
|
|
4
|
-
input:
|
|
5
|
-
prompt: "Export increment 0001 to JIRA"
|
|
6
|
-
expected_output:
|
|
7
|
-
agent_invoked: "specweave-jira-mapper"
|
|
8
|
-
parameters_passed: true
|
|
9
|
-
---
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Handle Missing Credentials"
|
|
3
|
-
description: "Tests error handling when JIRA credentials are missing"
|
|
4
|
-
input:
|
|
5
|
-
prompt: "Sync to JIRA"
|
|
6
|
-
jira_configured: false
|
|
7
|
-
expected_output:
|
|
8
|
-
error: "JIRA credentials not configured"
|
|
9
|
-
setup_instructions_provided: true
|
|
10
|
-
---
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
name: "Create Next.js App Router Page"
|
|
2
|
-
description: "Test creating a page using Next.js 14+ App Router"
|
|
3
|
-
user_input: "Create a products listing page using App Router"
|
|
4
|
-
expected_behavior:
|
|
5
|
-
- Creates app/products/page.tsx
|
|
6
|
-
- Uses Server Components by default
|
|
7
|
-
- Implements async data fetching
|
|
8
|
-
- Includes proper metadata export
|
|
9
|
-
validation:
|
|
10
|
-
- File located in app directory
|
|
11
|
-
- Uses default export function
|
|
12
|
-
- Implements async component if needed
|
|
13
|
-
- Exports metadata object
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
name: "Implement Server Actions"
|
|
2
|
-
description: "Test creating server actions for form handling"
|
|
3
|
-
user_input: "Create a contact form using server actions"
|
|
4
|
-
expected_behavior:
|
|
5
|
-
- Creates server action with 'use server' directive
|
|
6
|
-
- Implements form submission handler
|
|
7
|
-
- Uses FormData for input
|
|
8
|
-
- Includes validation with Zod
|
|
9
|
-
validation:
|
|
10
|
-
- Uses 'use server' at top of action file
|
|
11
|
-
- Accepts FormData parameter
|
|
12
|
-
- Returns appropriate response
|
|
13
|
-
- Implements revalidatePath or redirect
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
name: "Create API Route Handler"
|
|
2
|
-
description: "Test creating API routes in App Router"
|
|
3
|
-
user_input: "Create an API endpoint for fetching user data"
|
|
4
|
-
expected_behavior:
|
|
5
|
-
- Creates app/api/users/route.ts
|
|
6
|
-
- Implements GET, POST handlers
|
|
7
|
-
- Uses NextRequest and NextResponse
|
|
8
|
-
- Includes error handling
|
|
9
|
-
validation:
|
|
10
|
-
- File named route.ts in app/api directory
|
|
11
|
-
- Exports GET, POST functions
|
|
12
|
-
- Uses NextResponse.json() for responses
|
|
13
|
-
- Implements proper status codes
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
name: "Create Express.js REST API"
|
|
2
|
-
description: "Test creating Express REST API with TypeScript"
|
|
3
|
-
user_input: "Create an Express API for managing tasks with CRUD operations"
|
|
4
|
-
expected_behavior:
|
|
5
|
-
- Generates Express router with TypeScript
|
|
6
|
-
- Implements CRUD endpoints
|
|
7
|
-
- Includes middleware (validation, error handling)
|
|
8
|
-
- Uses async/await with proper error handling
|
|
9
|
-
validation:
|
|
10
|
-
- Uses express.Router()
|
|
11
|
-
- Implements GET, POST, PUT, DELETE routes
|
|
12
|
-
- Includes request validation (Zod or class-validator)
|
|
13
|
-
- Has centralized error handling middleware
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
name: "Implement Prisma ORM Integration"
|
|
2
|
-
description: "Test setting up Prisma with PostgreSQL"
|
|
3
|
-
user_input: "Add Prisma ORM to my Node.js project for user management"
|
|
4
|
-
expected_behavior:
|
|
5
|
-
- Creates Prisma schema with User model
|
|
6
|
-
- Generates Prisma Client
|
|
7
|
-
- Implements database queries using Prisma
|
|
8
|
-
- Includes migrations setup
|
|
9
|
-
validation:
|
|
10
|
-
- Has schema.prisma file
|
|
11
|
-
- Uses @prisma/client
|
|
12
|
-
- Implements proper typing
|
|
13
|
-
- Includes seed scripts
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
name: "Implement JWT Authentication"
|
|
2
|
-
description: "Test adding JWT authentication to Express API"
|
|
3
|
-
user_input: "Add JWT authentication and authorization to my API"
|
|
4
|
-
expected_behavior:
|
|
5
|
-
- Creates login/register endpoints
|
|
6
|
-
- Generates and validates JWT tokens
|
|
7
|
-
- Implements auth middleware
|
|
8
|
-
- Includes password hashing (bcrypt)
|
|
9
|
-
validation:
|
|
10
|
-
- Uses jsonwebtoken package
|
|
11
|
-
- Implements bcrypt for password hashing
|
|
12
|
-
- Creates authentication middleware
|
|
13
|
-
- Protects routes with middleware
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
name: "Create FastAPI CRUD API"
|
|
2
|
-
description: "Test creating FastAPI REST API with Pydantic models"
|
|
3
|
-
user_input: "Create a FastAPI application for managing products"
|
|
4
|
-
expected_behavior:
|
|
5
|
-
- Generates FastAPI app with CRUD endpoints
|
|
6
|
-
- Uses Pydantic models for validation
|
|
7
|
-
- Implements async route handlers
|
|
8
|
-
- Includes automatic OpenAPI documentation
|
|
9
|
-
validation:
|
|
10
|
-
- Uses FastAPI() instance
|
|
11
|
-
- Implements @app.get, @app.post, @app.put, @app.delete decorators
|
|
12
|
-
- Uses Pydantic BaseModel for schemas
|
|
13
|
-
- Includes type hints and async def
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
name: "Implement SQLAlchemy ORM"
|
|
2
|
-
description: "Test integrating SQLAlchemy with FastAPI"
|
|
3
|
-
user_input: "Add SQLAlchemy database integration to my FastAPI project"
|
|
4
|
-
expected_behavior:
|
|
5
|
-
- Creates SQLAlchemy models
|
|
6
|
-
- Sets up database session management
|
|
7
|
-
- Implements dependency injection for db session
|
|
8
|
-
- Includes Alembic migrations
|
|
9
|
-
validation:
|
|
10
|
-
- Uses SQLAlchemy declarative_base
|
|
11
|
-
- Implements database.py with engine and SessionLocal
|
|
12
|
-
- Uses Depends() for dependency injection
|
|
13
|
-
- Includes migration scripts
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
name: "Implement OAuth2 JWT Authentication"
|
|
2
|
-
description: "Test adding OAuth2 JWT authentication to FastAPI"
|
|
3
|
-
user_input: "Add OAuth2 password bearer authentication to my API"
|
|
4
|
-
expected_behavior:
|
|
5
|
-
- Creates OAuth2PasswordBearer dependency
|
|
6
|
-
- Implements JWT token generation and validation
|
|
7
|
-
- Uses passlib for password hashing
|
|
8
|
-
- Protects routes with Depends(get_current_user)
|
|
9
|
-
validation:
|
|
10
|
-
- Uses fastapi.security.OAuth2PasswordBearer
|
|
11
|
-
- Implements python-jose for JWT
|
|
12
|
-
- Uses passlib[bcrypt] for password hashing
|
|
13
|
-
- Includes login endpoint with OAuth2PasswordRequestForm
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Simple Product Development Orchestration"
|
|
3
|
-
description: "Tests role-orchestrator's ability to coordinate agents for simple product development"
|
|
4
|
-
priority: P1
|
|
5
|
-
test_type: integration
|
|
6
|
-
|
|
7
|
-
input:
|
|
8
|
-
prompt: "Build a simple todo application with React frontend and Node.js backend"
|
|
9
|
-
project_context:
|
|
10
|
-
type: "greenfield"
|
|
11
|
-
has_specs: false
|
|
12
|
-
has_architecture: false
|
|
13
|
-
|
|
14
|
-
expected_behavior:
|
|
15
|
-
- orchestrator_activates: true
|
|
16
|
-
- complexity_analysis:
|
|
17
|
-
scope: "full-product"
|
|
18
|
-
agents_needed: ["pm-agent", "architect-agent", "nodejs-backend", "frontend-agent", "qa-lead-agent", "devops-agent"]
|
|
19
|
-
pattern: "sequential_with_gates"
|
|
20
|
-
|
|
21
|
-
- execution_phases:
|
|
22
|
-
- phase: 1
|
|
23
|
-
name: "Requirements"
|
|
24
|
-
agent: "pm-agent"
|
|
25
|
-
output_files:
|
|
26
|
-
- "specifications/modules/todo-app/overview.md"
|
|
27
|
-
gate: "user_approval"
|
|
28
|
-
|
|
29
|
-
- phase: 2
|
|
30
|
-
name: "Architecture"
|
|
31
|
-
agent: "architect-agent"
|
|
32
|
-
input_from: "pm-agent"
|
|
33
|
-
output_files:
|
|
34
|
-
- ".specweave/docs/architecture/todo-app-design.md"
|
|
35
|
-
gate: "tech_review"
|
|
36
|
-
|
|
37
|
-
- phase: 3
|
|
38
|
-
name: "Feature Planning"
|
|
39
|
-
agent: "increment-planner"
|
|
40
|
-
output_files:
|
|
41
|
-
- "features/001-todo-app/spec.md"
|
|
42
|
-
- "features/001-todo-app/plan.md"
|
|
43
|
-
- "features/001-todo-app/tasks.md"
|
|
44
|
-
|
|
45
|
-
- phase: 4
|
|
46
|
-
name: "Implementation"
|
|
47
|
-
agents: ["nodejs-backend", "frontend-agent"]
|
|
48
|
-
pattern: "parallel"
|
|
49
|
-
output_files:
|
|
50
|
-
- "src/backend/todo-service.ts"
|
|
51
|
-
- "src/frontend/TodoApp.tsx"
|
|
52
|
-
|
|
53
|
-
- phase: 5
|
|
54
|
-
name: "Testing"
|
|
55
|
-
agent: "qa-lead-agent"
|
|
56
|
-
output_files:
|
|
57
|
-
- "features/001-todo-app/tests.md"
|
|
58
|
-
- "tests/e2e/todo-app.spec.ts"
|
|
59
|
-
gate: "test_coverage_80%"
|
|
60
|
-
|
|
61
|
-
- phase: 6
|
|
62
|
-
name: "Deployment"
|
|
63
|
-
agent: "devops-agent"
|
|
64
|
-
output_files:
|
|
65
|
-
- ".github/workflows/deploy.yml"
|
|
66
|
-
gate: "deployment_approval"
|
|
67
|
-
|
|
68
|
-
expected_output:
|
|
69
|
-
success: true
|
|
70
|
-
phases_completed: 6
|
|
71
|
-
gates_passed: 4
|
|
72
|
-
files_created:
|
|
73
|
-
- "specifications/modules/todo-app/overview.md"
|
|
74
|
-
- ".specweave/docs/architecture/todo-app-design.md"
|
|
75
|
-
- "features/001-todo-app/spec.md"
|
|
76
|
-
- "src/backend/todo-service.ts"
|
|
77
|
-
- "src/frontend/TodoApp.tsx"
|
|
78
|
-
- "tests/e2e/todo-app.spec.ts"
|
|
79
|
-
|
|
80
|
-
metrics:
|
|
81
|
-
total_agents_invoked: 6
|
|
82
|
-
parallel_executions: 1
|
|
83
|
-
sequential_phases: 5
|
|
84
|
-
quality_gates_passed: 4
|
|
85
|
-
|
|
86
|
-
validation:
|
|
87
|
-
- "All 6 phases completed in correct order"
|
|
88
|
-
- "Parallel execution of backend and frontend worked"
|
|
89
|
-
- "All quality gates evaluated correctly"
|
|
90
|
-
- "Shared context maintained across agents"
|
|
91
|
-
- "Final output includes all expected files"
|
|
92
|
-
|
|
93
|
-
success_criteria:
|
|
94
|
-
- orchestration_complete: true
|
|
95
|
-
- no_phase_failures: true
|
|
96
|
-
- all_gates_passed: true
|
|
97
|
-
- correct_agent_sequence: true
|
|
98
|
-
---
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Quality Gate Failure Handling"
|
|
3
|
-
description: "Tests role-orchestrator's ability to handle quality gate failures and coordinate remediation"
|
|
4
|
-
priority: P1
|
|
5
|
-
test_type: integration
|
|
6
|
-
|
|
7
|
-
input:
|
|
8
|
-
prompt: "Implement payment processing feature"
|
|
9
|
-
project_context:
|
|
10
|
-
type: "brownfield"
|
|
11
|
-
existing_code: "src/payments/"
|
|
12
|
-
test_coverage: "45%" # Below 80% threshold
|
|
13
|
-
|
|
14
|
-
simulated_scenario:
|
|
15
|
-
- phase: "implementation"
|
|
16
|
-
status: "completed"
|
|
17
|
-
test_coverage_actual: "67%" # Below target of 80%
|
|
18
|
-
|
|
19
|
-
- phase: "qa_gate"
|
|
20
|
-
gate_type: "test_coverage"
|
|
21
|
-
target: "80%"
|
|
22
|
-
actual: "67%"
|
|
23
|
-
status: "failed"
|
|
24
|
-
|
|
25
|
-
expected_behavior:
|
|
26
|
-
- gate_failure_detected: true
|
|
27
|
-
- orchestrator_response:
|
|
28
|
-
- pause_deployment: true
|
|
29
|
-
- invoke_agent: "qa-lead-agent"
|
|
30
|
-
- task: "Analyze test coverage gaps and create additional tests"
|
|
31
|
-
|
|
32
|
-
- qa_lead_analysis:
|
|
33
|
-
files_examined:
|
|
34
|
-
- "src/payments/payment-service.ts"
|
|
35
|
-
- "tests/unit/payment-service.test.ts"
|
|
36
|
-
gaps_identified:
|
|
37
|
-
- "Error handling not tested (15% of code)"
|
|
38
|
-
- "Edge cases missing (10%)"
|
|
39
|
-
- "Integration tests needed (8%)"
|
|
40
|
-
|
|
41
|
-
- orchestrator_next_steps:
|
|
42
|
-
- create_work_items:
|
|
43
|
-
- "work/issues/001-improve-test-coverage/"
|
|
44
|
-
- assign_to: "nodejs-backend"
|
|
45
|
-
- task: "Implement additional test cases"
|
|
46
|
-
|
|
47
|
-
- retry_after_fixes:
|
|
48
|
-
test_coverage_new: "84%"
|
|
49
|
-
gate_status: "passed"
|
|
50
|
-
proceed_to_next_phase: true
|
|
51
|
-
|
|
52
|
-
expected_output:
|
|
53
|
-
gate_failure_handled: true
|
|
54
|
-
remediation_plan_created: true
|
|
55
|
-
work_items_created:
|
|
56
|
-
- "work/issues/001-improve-test-coverage/issue.md"
|
|
57
|
-
final_gate_status: "passed"
|
|
58
|
-
deployment_proceeded: true
|
|
59
|
-
|
|
60
|
-
validation:
|
|
61
|
-
- "Gate failure detected immediately"
|
|
62
|
-
- "Orchestrator paused next phases"
|
|
63
|
-
- "QA Lead agent invoked for analysis"
|
|
64
|
-
- "Work items created for fixes"
|
|
65
|
-
- "After fixes, gate re-evaluated"
|
|
66
|
-
- "Gate passed, deployment proceeded"
|
|
67
|
-
|
|
68
|
-
success_criteria:
|
|
69
|
-
- failure_detection: "immediate"
|
|
70
|
-
- remediation_invoked: true
|
|
71
|
-
- gate_retry_successful: true
|
|
72
|
-
- no_deployment_before_fix: true
|
|
73
|
-
---
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Security Hardening Multi-Agent Workflow"
|
|
3
|
-
description: "Tests role-orchestrator's ability to coordinate security review with multiple agents"
|
|
4
|
-
priority: P1
|
|
5
|
-
test_type: integration
|
|
6
|
-
|
|
7
|
-
input:
|
|
8
|
-
prompt: "Perform security audit and harden our authentication system"
|
|
9
|
-
project_context:
|
|
10
|
-
type: "brownfield"
|
|
11
|
-
existing_system: "src/auth/"
|
|
12
|
-
security_critical: true
|
|
13
|
-
compliance_required: ["OWASP Top 10", "OAuth 2.0"]
|
|
14
|
-
|
|
15
|
-
expected_behavior:
|
|
16
|
-
- orchestrator_pattern: "assess_fix_verify"
|
|
17
|
-
|
|
18
|
-
- execution_phases:
|
|
19
|
-
- phase: 1
|
|
20
|
-
name: "Security Assessment"
|
|
21
|
-
agent: "security-agent"
|
|
22
|
-
task: "Threat modeling and security audit"
|
|
23
|
-
output_files:
|
|
24
|
-
- ".specweave/docs/architecture/security/threat-model.md"
|
|
25
|
-
- ".specweave/docs/architecture/security/vulnerabilities.md"
|
|
26
|
-
findings:
|
|
27
|
-
critical:
|
|
28
|
-
- "SQL injection vulnerability in login endpoint"
|
|
29
|
-
- "Missing rate limiting on password reset"
|
|
30
|
-
high:
|
|
31
|
-
- "Weak password policy"
|
|
32
|
-
- "Session tokens not rotated"
|
|
33
|
-
medium:
|
|
34
|
-
- "HTTPS not enforced on all routes"
|
|
35
|
-
|
|
36
|
-
- phase: 2
|
|
37
|
-
name: "Prioritization"
|
|
38
|
-
agent: "tech-lead-agent"
|
|
39
|
-
input_from: "security-agent"
|
|
40
|
-
task: "Create prioritized fix plan"
|
|
41
|
-
output_files:
|
|
42
|
-
- "work/issues/001-critical-security-fixes/issue.md"
|
|
43
|
-
- "work/issues/002-high-priority-security/issue.md"
|
|
44
|
-
|
|
45
|
-
- phase: 3
|
|
46
|
-
name: "Implementation"
|
|
47
|
-
agents: ["nodejs-backend"] # Since auth is Node.js
|
|
48
|
-
task: "Implement security fixes"
|
|
49
|
-
fixes_implemented:
|
|
50
|
-
- "Parameterized queries for SQL injection"
|
|
51
|
-
- "Rate limiting middleware (express-rate-limit)"
|
|
52
|
-
- "Enhanced password policy (zxcvbn)"
|
|
53
|
-
- "Session token rotation"
|
|
54
|
-
- "HTTPS enforcement"
|
|
55
|
-
output_files:
|
|
56
|
-
- "src/auth/auth-service.ts" # Updated
|
|
57
|
-
- "src/middleware/rate-limiter.ts" # New
|
|
58
|
-
- "src/auth/password-policy.ts" # New
|
|
59
|
-
|
|
60
|
-
- phase: 4
|
|
61
|
-
name: "Security Testing"
|
|
62
|
-
agent: "security-agent"
|
|
63
|
-
task: "Penetration testing"
|
|
64
|
-
tests_performed:
|
|
65
|
-
- "SQL injection attempts"
|
|
66
|
-
- "Brute force attacks"
|
|
67
|
-
- "Session hijacking"
|
|
68
|
-
- "CSRF attacks"
|
|
69
|
-
gate: "no_critical_vulnerabilities"
|
|
70
|
-
|
|
71
|
-
- phase: 5
|
|
72
|
-
name: "Regression Testing"
|
|
73
|
-
agent: "qa-lead-agent"
|
|
74
|
-
task: "Ensure no functionality broken"
|
|
75
|
-
output_files:
|
|
76
|
-
- "tests/security/auth-security.spec.ts"
|
|
77
|
-
gate: "all_tests_pass"
|
|
78
|
-
|
|
79
|
-
- phase: 6
|
|
80
|
-
name: "Deployment"
|
|
81
|
-
agent: "devops-agent"
|
|
82
|
-
task: "Zero-downtime deployment with rollback plan"
|
|
83
|
-
strategy: "blue-green"
|
|
84
|
-
gate: "deployment_approval"
|
|
85
|
-
|
|
86
|
-
expected_output:
|
|
87
|
-
success: true
|
|
88
|
-
vulnerabilities_fixed:
|
|
89
|
-
critical: 2
|
|
90
|
-
high: 2
|
|
91
|
-
medium: 1
|
|
92
|
-
|
|
93
|
-
security_gates_passed:
|
|
94
|
-
- "no_critical_vulnerabilities"
|
|
95
|
-
- "penetration_tests_passed"
|
|
96
|
-
- "regression_tests_passed"
|
|
97
|
-
|
|
98
|
-
files_created:
|
|
99
|
-
- ".specweave/docs/architecture/security/threat-model.md"
|
|
100
|
-
- "work/issues/001-critical-security-fixes/issue.md"
|
|
101
|
-
- "src/middleware/rate-limiter.ts"
|
|
102
|
-
- "tests/security/auth-security.spec.ts"
|
|
103
|
-
|
|
104
|
-
deployment_status: "successful"
|
|
105
|
-
rollback_plan: "documented"
|
|
106
|
-
|
|
107
|
-
validation:
|
|
108
|
-
- "Security agent performed comprehensive audit"
|
|
109
|
-
- "Critical vulnerabilities prioritized first"
|
|
110
|
-
- "All fixes implemented by appropriate agent"
|
|
111
|
-
- "Penetration testing validated fixes"
|
|
112
|
-
- "No regressions introduced"
|
|
113
|
-
- "Deployment successful with rollback plan"
|
|
114
|
-
|
|
115
|
-
success_criteria:
|
|
116
|
-
- all_critical_vulns_fixed: true
|
|
117
|
-
- penetration_tests_passed: true
|
|
118
|
-
- no_regressions: true
|
|
119
|
-
- deployment_successful: true
|
|
120
|
-
- compliance_met: ["OWASP Top 10", "OAuth 2.0"]
|
|
121
|
-
---
|