@guanlin4924/devflow-pi 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/README.md +164 -0
- package/docs/OMP-NATIVE-ARCHITECTURE.md +104 -0
- package/package.json +40 -0
- package/plugins/devflow-core/extensions/devflow-core.ts +1642 -0
- package/plugins/devflow-core/package.json +14 -0
- package/plugins/devflow-core/runtime/hooks/context_sync_gate.py +174 -0
- package/plugins/devflow-core/runtime/hooks/hook_common.py +696 -0
- package/plugins/devflow-core/runtime/hooks/index_gate.py +63 -0
- package/plugins/devflow-core/runtime/hooks/injection_code_specification.py +7 -0
- package/plugins/devflow-core/runtime/hooks/post_tool.py +44 -0
- package/plugins/devflow-core/runtime/hooks/start.py +288 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/SKILL.md +265 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/agents/openai.yaml +4 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/advance_state.rb +520 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/control_io.rb +42 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/init_state.rb +138 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/init_workflow.rb +121 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/inspect_state.rb +553 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/manage_lessons.rb +219 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/sync_artifacts.rb +168 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/update_triage_route.rb +110 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/validate_state.rb +565 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/templates/feature-development.yaml +783 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/templates/uat-remediation.yaml +143 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/templates/workflows-README.md +10 -0
- package/plugins/devflow-core/skills/workflow-pipeline/SKILL.md +117 -0
- package/plugins/devflow-core/skills/workflow-pipeline/references/pipeline-flow.md +167 -0
- package/plugins/devflow-core/skills/workflow-pipeline/references/slice-safety-guide.md +125 -0
- package/plugins/devflow-core/skills/workflow-project-context/SKILL.md +819 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/agents-md-template.md +25 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/codebase-backend-spec-template.md +68 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/codebase-frontend-spec-template.md +64 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/codebase-navigation-template.md +168 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/context-domain-index-template.md +43 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/context-spec-index-template.md +45 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/execution-contract-template.md +57 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/navigation-index-template.md +40 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/project-initialization-template.md +109 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/rules-index-template.md +80 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/run-manifest-template.json +40 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/backend/directory-structure.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/backend/engine.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/backend/errors.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/backend/locator.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/backend/model.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/backend/repository.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/backend/router.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/backend/scheduler.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/backend/schema.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/backend/service.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/backend/testing.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/frontend/api-client.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/frontend/case-editor.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/frontend/components.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/frontend/directory-structure.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/frontend/forms.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/frontend/routing.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/frontend/state.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/spec-templates/frontend/testing.md +46 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/stack-spec-template.md +106 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/state-template.md +77 -0
- package/plugins/devflow-core/skills/workflow-project-context/assets/toolchain-template.md +37 -0
- package/plugins/devflow-core/skills/workflow-project-context/references/navigation-guide.md +262 -0
- package/plugins/devflow-core/skills/workflow-project-context/scripts/validate_initialization.py +545 -0
- package/plugins/devflow-design/agents/contract-auditor.md +18 -0
- package/plugins/devflow-design/extensions/devflow-design.ts +47 -0
- package/plugins/devflow-design/package.json +14 -0
- package/plugins/devflow-design/skills/workflow-api-call-guide/SKILL.md +142 -0
- package/plugins/devflow-design/skills/workflow-api-contract/SKILL.md +150 -0
- package/plugins/devflow-design/skills/workflow-api-supplement/SKILL.md +121 -0
- package/plugins/devflow-design/skills/workflow-backend-tech-spec/SKILL.md +257 -0
- package/plugins/devflow-design/skills/workflow-backend-tech-spec/assets/adr-template.md +57 -0
- package/plugins/devflow-design/skills/workflow-backend-tech-spec/assets/backend-spec-template.md +205 -0
- package/plugins/devflow-design/skills/workflow-backend-tech-spec/references/affected-module-exploration.md +59 -0
- package/plugins/devflow-design/skills/workflow-backend-tech-spec/references/backend-conventions.md +30 -0
- package/plugins/devflow-design/skills/workflow-backend-tech-spec/references/code-explore-guide.md +40 -0
- package/plugins/devflow-design/skills/workflow-backend-tech-spec/references/project-rule-contract.md +66 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/SKILL.md +91 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/index.md +71 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/recommendations/accessibility.md +31 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/recommendations/component-library.md +31 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/recommendations/design-systems.md +47 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/recommendations/responsive-grid.md +29 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/recommendations/stack-guidelines.md +31 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/recommendations/ux-patterns.md +40 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tokens/project-tokens.md +19 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/SKILL.md +377 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/charts.csv +26 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/colors.csv +97 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/icons.csv +101 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/landing.csv +31 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/products.csv +97 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/styles.csv +68 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/typography.csv +58 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/scripts/core.py +253 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/assets/design/tools/ui-ux-pro-max/scripts/search.py +114 -0
- package/plugins/devflow-design/skills/workflow-design-rule-pack/scripts/install.py +67 -0
- package/plugins/devflow-design/skills/workflow-feature-breakdown/SKILL.md +370 -0
- package/plugins/devflow-design/skills/workflow-feature-breakdown/assets/admin-system-template.md +57 -0
- package/plugins/devflow-design/skills/workflow-feature-breakdown/assets/api-service-template.md +42 -0
- package/plugins/devflow-design/skills/workflow-feature-breakdown/assets/c-end-system-template.md +25 -0
- package/plugins/devflow-design/skills/workflow-feature-breakdown/assets/output-template.md +139 -0
- package/plugins/devflow-design/skills/workflow-feature-breakdown/references/bug-rules.md +12 -0
- package/plugins/devflow-design/skills/workflow-feature-breakdown/references/exception-checklist.md +31 -0
- package/plugins/devflow-design/skills/workflow-feature-breakdown/references/trace-integrity-guide.md +153 -0
- package/plugins/devflow-design/skills/workflow-feature-breakdown/references/writing-guide.md +92 -0
- package/plugins/devflow-design/skills/workflow-frontend-tech-spec/SKILL.md +223 -0
- package/plugins/devflow-design/skills/workflow-frontend-tech-spec/assets/frontend-spec-template.md +204 -0
- package/plugins/devflow-design/skills/workflow-frontend-tech-spec/references/affected-module-exploration.md +58 -0
- package/plugins/devflow-design/skills/workflow-frontend-tech-spec/references/component-patterns.md +42 -0
- package/plugins/devflow-design/skills/workflow-frontend-tech-spec/references/frontend-conventions.md +28 -0
- package/plugins/devflow-design/skills/workflow-frontend-tech-spec/references/frontend-stack-slots/common-web.md +53 -0
- package/plugins/devflow-design/skills/workflow-frontend-tech-spec/references/frontend-stack-slots/next.md +40 -0
- package/plugins/devflow-design/skills/workflow-frontend-tech-spec/references/frontend-stack-slots/react.md +41 -0
- package/plugins/devflow-design/skills/workflow-frontend-tech-spec/references/frontend-stack-slots/vue.md +41 -0
- package/plugins/devflow-design/skills/workflow-frontend-tech-spec/references/project-rule-contract.md +95 -0
- package/plugins/devflow-design/skills/workflow-integration-verify/SKILL.md +172 -0
- package/plugins/devflow-design/skills/workflow-ui-spec/SKILL.md +302 -0
- package/plugins/devflow-design/skills/workflow-ui-spec/assets/ui-spec-template.md +244 -0
- package/plugins/devflow-design/skills/workflow-ui-spec/references/affected-module-exploration.md +55 -0
- package/plugins/devflow-implementation/agents/implementation-worker.md +20 -0
- package/plugins/devflow-implementation/package.json +6 -0
- package/plugins/devflow-implementation/skills/workflow-bug-fix/SKILL.md +124 -0
- package/plugins/devflow-implementation/skills/workflow-bug-fix/references/INDEX.md +13 -0
- package/plugins/devflow-implementation/skills/workflow-bug-fix/references/adversarial-review.md +35 -0
- package/plugins/devflow-implementation/skills/workflow-bug-fix/references/first-principles.md +26 -0
- package/plugins/devflow-implementation/skills/workflow-bug-fix/references/lesson-format.md +28 -0
- package/plugins/devflow-implementation/skills/workflow-bug-fix/references/root-cause-ladder.md +51 -0
- package/plugins/devflow-implementation/skills/workflow-bug-fix/references/seam-analysis.md +30 -0
- package/plugins/devflow-implementation/skills/workflow-change-plan/SKILL.md +160 -0
- package/plugins/devflow-implementation/skills/workflow-change-plan/references/code-conventions.md +33 -0
- package/plugins/devflow-implementation/skills/workflow-change-plan/references/ddl-guidelines.md +60 -0
- package/plugins/devflow-implementation/skills/workflow-change-plan/references/output-template.md +217 -0
- package/plugins/devflow-implementation/skills/workflow-change-plan/references/project-rule-contract.md +55 -0
- package/plugins/devflow-implementation/skills/workflow-execute-phase/SKILL.md +271 -0
- package/plugins/devflow-implementation/skills/workflow-execute-phase/references/execute-phase.md +1251 -0
- package/plugins/devflow-implementation/skills/workflow-execute-phase/references/ui-brand.md +160 -0
- package/plugins/devflow-intel/agents/project-scout.md +27 -0
- package/plugins/devflow-intel/extensions/devflow-intel.ts +104 -0
- package/plugins/devflow-intel/package.json +14 -0
- package/plugins/devflow-intel/skills/code-index-query/SKILL.md +37 -0
- package/plugins/devflow-intel/skills/code-index-query/references/query-patterns.md +27 -0
- package/plugins/devflow-intel/skills/workflow-code-index/SKILL.md +68 -0
- package/plugins/devflow-intel/skills/workflow-code-index/references/adapter-contract.md +38 -0
- package/plugins/devflow-intel/skills/workflow-code-index/references/audit-checklist.md +10 -0
- package/plugins/devflow-intel/skills/workflow-code-index/references/confidence-rules.md +43 -0
- package/plugins/devflow-intel/skills/workflow-code-index/references/data-model.md +74 -0
- package/plugins/devflow-intel/skills/workflow-code-index/references/discovery.md +24 -0
- package/plugins/devflow-intel/skills/workflow-code-index/references/query-guide.md +20 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/adapters/__init__.py +1 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/adapters/base.py +30 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/adapters/generic_text.py +287 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/adapters/registry.py +17 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/code_index.py +437 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/core/__init__.py +1 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/core/discovery.py +139 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/core/hashing.py +11 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/core/scanner.py +115 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/core/schema.py +123 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/validators/__init__.py +1 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/validators/project_binding_check.py +66 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/validators/relation_check.py +36 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/validators/schema_validate.py +11 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/validators/stale_check.py +42 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/writers/__init__.py +1 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/writers/jsonl_writer.py +25 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/writers/markdown_writer.py +106 -0
- package/plugins/devflow-intel/skills/workflow-code-index/scripts/writers/sqlite_writer.py +143 -0
- package/plugins/devflow-intel/skills/workflow-context-sync/SKILL.md +381 -0
- package/plugins/devflow-intel/skills/workflow-context-sync/agents/openai.yaml +4 -0
- package/plugins/devflow-intel/skills/workflow-context-sync/scripts/context_sync_cursor.py +241 -0
- package/plugins/devflow-intel/skills/workflow-update-navigation/SKILL.md +186 -0
- package/plugins/devflow-intel/skills/workflow-update-navigation/references/incremental-update-guide.md +47 -0
- package/plugins/devflow-quality/agents/code-reviewer.md +18 -0
- package/plugins/devflow-quality/agents/verification-runner.md +21 -0
- package/plugins/devflow-quality/extensions/devflow-quality.ts +59 -0
- package/plugins/devflow-quality/package.json +14 -0
- package/plugins/devflow-quality/skills/code-review/SKILL.md +288 -0
- package/plugins/devflow-quality/skills/code-review/references/cross-layer-checklist.md +70 -0
- package/plugins/devflow-quality/skills/code-review/references/dao-checklist.md +70 -0
- package/plugins/devflow-quality/skills/code-review/references/handler-checklist.md +48 -0
- package/plugins/devflow-quality/skills/code-review/references/repository-checklist.md +44 -0
- package/plugins/devflow-quality/skills/code-review/references/service-checklist.md +57 -0
- package/plugins/devflow-quality/skills/code-review/references/spec-checklist.md +34 -0
- package/plugins/devflow-quality/skills/code-review/references/vo-checklist.md +26 -0
- package/plugins/devflow-quality/skills/workflow-audit-milestone/SKILL.md +31 -0
- package/plugins/devflow-quality/skills/workflow-audit-milestone/references/audit-milestone.md +328 -0
- package/plugins/devflow-quality/skills/workflow-complete-milestone/SKILL.md +132 -0
- package/plugins/devflow-quality/skills/workflow-complete-milestone/assets/milestone-archive.md +123 -0
- package/plugins/devflow-quality/skills/workflow-complete-milestone/references/complete-milestone.md +775 -0
- package/plugins/devflow-quality/skills/workflow-complete-milestone/references/milestone-archive.md +123 -0
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/SKILL.md +126 -0
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/references/api-mainflow-rules.md +27 -0
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/references/codebase-discovery.md +54 -0
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/references/intermediate-format.md +244 -0
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/references/mainflow-selection.md +36 -0
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/references/project-dsl-contract.md +190 -0
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/references/ui-mainflow-rules.md +110 -0
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/scripts/compile_dsl.py +583 -0
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/scripts/discover_codebases.py +199 -0
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/scripts/normalize_case_payloads.py +177 -0
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/scripts/validate_case_payloads.py +370 -0
- package/plugins/devflow-quality/skills/workflow-verify-work/SKILL.md +106 -0
- package/plugins/devflow-quality/skills/workflow-verify-work/assets/UAT.md +265 -0
- package/plugins/devflow-quality/skills/workflow-verify-work/references/verify-work.md +759 -0
- package/plugins/devflow-requirements/agents/requirements-auditor.md +20 -0
- package/plugins/devflow-requirements/package.json +6 -0
- package/plugins/devflow-requirements/skills/requirement-feasibility-review/SKILL.md +219 -0
- package/plugins/devflow-requirements/skills/requirement-feasibility-review/agents/openai.yaml +4 -0
- package/plugins/devflow-requirements/skills/requirement-feasibility-review/references/review-method.md +257 -0
- package/plugins/devflow-requirements/skills/requirement-feasibility-review/references/review-template.md +80 -0
- package/plugins/devflow-requirements/skills/workflow-demand-clarify/SKILL.md +325 -0
- package/plugins/devflow-requirements/skills/workflow-domain-modeling/SKILL.md +163 -0
- package/plugins/devflow-requirements/skills/workflow-requirement-baseline/SKILL.md +748 -0
- package/plugins/devflow-requirements/skills/workflow-requirement-baseline/assets/baseline-template.md +281 -0
- package/plugins/devflow-requirements/skills/workflow-requirement-baseline/references/antipatterns.md +69 -0
- package/plugins/devflow-requirements/skills/workflow-requirement-baseline/references/challenge-review-guide.md +158 -0
- package/plugins/devflow-requirements/skills/workflow-requirement-baseline/references/decomposition-guide.md +115 -0
- package/plugins/devflow-requirements/skills/workflow-requirement-baseline/references/project-context-guide.md +119 -0
- package/plugins/devflow-requirements/skills/workflow-requirement-baseline/references/questioning.md +76 -0
- package/plugins/devflow-requirements/skills/workflow-requirement-baseline/references/requirement-review-checklist.md +115 -0
- package/plugins/devflow-requirements/skills/workflow-requirement-triage/SKILL.md +204 -0
- package/plugins/devflow-requirements/skills/workflow-wayfinder/SKILL.md +183 -0
- package/src/cli.ts +76 -0
- package/src/constants.ts +15 -0
- package/src/doctor.ts +66 -0
- package/src/paths.ts +37 -0
- package/src/platform-extension.ts +46 -0
- package/src/project-context.ts +165 -0
- package/src/runtime.ts +167 -0
- package/src/usage-stats.ts +101 -0
- package/templates/commands/start.md +58 -0
- package/templates/omp/AGENTS.md +36 -0
- package/templates/omp/config.yml +112 -0
- package/templates/omp/hook-config.json +18 -0
- package/templates/omp/index-policy.json +57 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Project DSL Contract
|
|
2
|
+
|
|
3
|
+
Legacy normalization input is an object with metadata and cases:
|
|
4
|
+
|
|
5
|
+
```json
|
|
6
|
+
{
|
|
7
|
+
"metadata": {
|
|
8
|
+
"feature": "Feature name",
|
|
9
|
+
"phase": "01-Feature",
|
|
10
|
+
"generated_by": "workflow-generate-mainflow-cases",
|
|
11
|
+
"project_id": 1
|
|
12
|
+
},
|
|
13
|
+
"cases": [
|
|
14
|
+
{
|
|
15
|
+
"project_id": 1,
|
|
16
|
+
"name": "Case name",
|
|
17
|
+
"description": "Positive mainflow purpose and traceability.",
|
|
18
|
+
"tags": ["api-mainflow"],
|
|
19
|
+
"dsl_json": {
|
|
20
|
+
"name": "Case name",
|
|
21
|
+
"description": "Same behavior summary.",
|
|
22
|
+
"tags": ["api-mainflow"],
|
|
23
|
+
"variables": {},
|
|
24
|
+
"steps": []
|
|
25
|
+
},
|
|
26
|
+
"source_evidence": [
|
|
27
|
+
{
|
|
28
|
+
"path": ".planning/features/Feature/后端技术方案.md",
|
|
29
|
+
"line": 120,
|
|
30
|
+
"reason": "API contract source"
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`cases[*]` must be compatible with backend `CaseCreate` after normalization:
|
|
39
|
+
|
|
40
|
+
- `project_id`: integer. If no project id is known, use `metadata.project_id` or `1` and record an import note.
|
|
41
|
+
- `name`: non-empty string.
|
|
42
|
+
- `description`: optional string.
|
|
43
|
+
- `dsl_json`: object.
|
|
44
|
+
- `tags`: exactly one of `["api-mainflow"]` or `["ui-mainflow"]` unless the case is intentionally mixed UI flow with API setup; mixed UI flows still use `["ui-mainflow"]`.
|
|
45
|
+
|
|
46
|
+
`source_evidence` is allowed in drafts. Normalization moves it to metadata and removes it from import payload cases.
|
|
47
|
+
|
|
48
|
+
## DSL Step Shape
|
|
49
|
+
|
|
50
|
+
Each step needs:
|
|
51
|
+
|
|
52
|
+
- `id`
|
|
53
|
+
- `name`
|
|
54
|
+
- `driver`: `api`, `web`, or `ui`
|
|
55
|
+
- `action`
|
|
56
|
+
- `params`
|
|
57
|
+
- `depends_on`
|
|
58
|
+
- `assertions`
|
|
59
|
+
- `timeout_ms`
|
|
60
|
+
- `on_failure`
|
|
61
|
+
|
|
62
|
+
API steps require `params.url`. Prefer variable placeholders such as `${base_url}` instead of environment-specific hosts when possible.
|
|
63
|
+
|
|
64
|
+
UI steps with `driver: "ui"` require:
|
|
65
|
+
|
|
66
|
+
- `strategy`: depends on step type (see below)
|
|
67
|
+
- `target`: non-empty unless `strategy.mode` is `ai_only`
|
|
68
|
+
|
|
69
|
+
### Strategy Selection
|
|
70
|
+
|
|
71
|
+
**Action steps** (click, fill, select, hover) — `structured_first` + midscene fallback:
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{ "strategy": { "mode": "structured_first", "fallback": "midscene" } }
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Verification steps** (assert_text, assert_visible, wait for success/result) — prefer `ai_only`. Visual verification of transient UI (toast messages, success prompts, dialog confirmations) is an AI task:
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{ "strategy": { "mode": "ai_only" } }
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"id": "s06",
|
|
86
|
+
"name": "验证编辑成功",
|
|
87
|
+
"driver": "ui",
|
|
88
|
+
"action": "act",
|
|
89
|
+
"target": { "label": "操作成功" },
|
|
90
|
+
"strategy": { "mode": "ai_only" },
|
|
91
|
+
"prompt": "检查页面是否出现'操作成功'的提示消息,确认编辑操作已成功完成",
|
|
92
|
+
"depends_on": ["s05"],
|
|
93
|
+
"timeout_ms": 15000
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Target Field Specification
|
|
98
|
+
|
|
99
|
+
`target` is a **flat key-value object**. The key IS the locator type. The system resolves them in this priority: `css → xpath → label → placeholder → role+name → near_text`.
|
|
100
|
+
|
|
101
|
+
**There is NO `by` field. Do NOT invent `{"by": "...", "value": "..."}` format.**
|
|
102
|
+
|
|
103
|
+
#### Decision Table: Which Key for Which Scenario
|
|
104
|
+
|
|
105
|
+
| 场景 | 选哪个 key | 示例 | 原因 |
|
|
106
|
+
|---|---|---|---|
|
|
107
|
+
| 页面唯一按钮/菜单/tab | `label` + `exact` | `{"label": "新增项目库", "exact": true}` | 文本最稳定,不受CSS重构影响 |
|
|
108
|
+
| 表格行操作按钮(每行重复) | `css` 精确定位 | `{"css": "tr:nth-child(2) .edit-btn"}` | 必须定位到具体行,"编辑"不唯一 |
|
|
109
|
+
| 对话框底部确定/取消 | `css` 限定作用域 | `{"css": ".el-dialog__footer .el-button--primary"}` | 防止dialog外也有同名按钮 |
|
|
110
|
+
| 输入框(有唯一placeholder) | `placeholder` | `{"placeholder": "请输入后台名称"}` | 语义清晰,自动scope内唯一 |
|
|
111
|
+
| 表单项旁边控件 | `near_text` | `{"near_text": "后台名称"}` | label文本定位,控件自动匹配 |
|
|
112
|
+
| ARIA友好的按钮/组件 | `role` + `name` | `{"role": "button", "name": "确定"}` | 无障碍属性,可访问性最好 |
|
|
113
|
+
| 无他法定位时 | `xpath` | `{"xpath": "//button[text()='确定']"}` | 最后的结构化手段 |
|
|
114
|
+
| 以上均不稳定 | `ai_only` strategy | 不走target,用AI视觉识别 | 放弃结构化,交AI处理 |
|
|
115
|
+
|
|
116
|
+
#### Key Selection Priority for Generation
|
|
117
|
+
|
|
118
|
+
1. **先看唯一性**:页面只有一个"新增项目库"按钮 → `label`;每行都有"编辑" → 不能只用 `label`
|
|
119
|
+
2. **再看作用域**:对话框内用 `css` 限定 `.el-dialog__footer .el-button--primary`
|
|
120
|
+
3. **input/textarea 优先用** `placeholder`
|
|
121
|
+
4. **表单项控件用** `near_text`
|
|
122
|
+
5. **都不行再用** `xpath` **或** `ai_only`
|
|
123
|
+
|
|
124
|
+
#### Correct Format Examples
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
// 页面唯一按钮 → label
|
|
128
|
+
{ "label": "新增项目库", "exact": true }
|
|
129
|
+
|
|
130
|
+
// 表格行按钮 → css 精确定位
|
|
131
|
+
{ "css": "tr:nth-child(2) .edit-btn" }
|
|
132
|
+
|
|
133
|
+
// 对话框确定按钮 → css 限定作用域
|
|
134
|
+
{ "css": ".el-dialog__footer .el-button--primary" }
|
|
135
|
+
|
|
136
|
+
// 输入框 → placeholder
|
|
137
|
+
{ "placeholder": "请输入后台名称" }
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Assertion Rules
|
|
141
|
+
|
|
142
|
+
**API steps** (`driver: "api"`) use `assertions[]` with these types:
|
|
143
|
+
|
|
144
|
+
| Type | Behavior |
|
|
145
|
+
|---|---|
|
|
146
|
+
| `equals` | `actual == expected` |
|
|
147
|
+
| `status_code` | HTTP 状态码 |
|
|
148
|
+
| `contains` | `expected in actual` |
|
|
149
|
+
| `json_path_equals` | JSONPath 取值相等 |
|
|
150
|
+
| `json_path_exists` | JSONPath 路径存在 |
|
|
151
|
+
| `regex` | 正则匹配 |
|
|
152
|
+
| `not_equals` / `not_contains` / `greater_than` / `less_than` / `in` / `not_in` / `is_empty` / `is_not_empty` |
|
|
153
|
+
|
|
154
|
+
**`"text"` is NOT a valid assertion type.** It will raise `ValueError: unsupported assertion type: text`.
|
|
155
|
+
|
|
156
|
+
**Web/UI steps** (`driver: "web"` / `"ui"`) do NOT use `assertions[]` for text/visibility checks. Use assertion **actions** instead:
|
|
157
|
+
|
|
158
|
+
```json
|
|
159
|
+
// UI verification — use AI-only, not structured
|
|
160
|
+
{
|
|
161
|
+
"id": "s06",
|
|
162
|
+
"name": "验证操作成功",
|
|
163
|
+
"driver": "ui",
|
|
164
|
+
"action": "act",
|
|
165
|
+
"target": { "label": "操作成功" },
|
|
166
|
+
"strategy": { "mode": "ai_only" },
|
|
167
|
+
"prompt": "检查页面是否出现'操作成功'的提示消息,确认操作已成功完成",
|
|
168
|
+
"depends_on": ["s05"],
|
|
169
|
+
"timeout_ms": 15000
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Valid assertion actions for web/ui (use ai_only for these): `assert_text`, `assert_visible`, `assert_url_contains`, `assert_any_visible`.
|
|
174
|
+
|
|
175
|
+
For API steps, assertion example:
|
|
176
|
+
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"id": "api-login",
|
|
180
|
+
"driver": "api",
|
|
181
|
+
"action": "post",
|
|
182
|
+
"params": { "url": "${base_url}/auth/login", "json": { "userid": "${userid}", "password": "${password}" } },
|
|
183
|
+
"assertions": [
|
|
184
|
+
{ "type": "status_code", "expected": 200 },
|
|
185
|
+
{ "type": "json_path_exists", "path": "headers.X-Jwt-Token" }
|
|
186
|
+
]
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Do not include real credentials, tokens, cookies, passwords, API keys, or production secrets. Use variables like `${auth_token}` or placeholders like `<token>` only.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# UI Mainflow Rules
|
|
2
|
+
|
|
3
|
+
UI cases validate successful user journeys through importable DSL.
|
|
4
|
+
|
|
5
|
+
## Hard Rule: Source-Backed Terminology
|
|
6
|
+
|
|
7
|
+
**All UI text in locators, step names, and descriptions MUST be exact strings from source code.** Never invent, translate, guess, or "improve" the text. If the code says "查询" (query button text), the step name and locator must say "查询" — not "搜索", not "查找".
|
|
8
|
+
|
|
9
|
+
Extract locator values from:
|
|
10
|
+
- Template/JSX: `<el-button>查询</el-button>` → `locator: "text:查询"`
|
|
11
|
+
- Placeholder attrs: `placeholder="请输入名称"` → `locator: "placeholder:请输入名称"`
|
|
12
|
+
- Dialog titles: `<el-dialog title="新增项目">` → verify text "新增项目"
|
|
13
|
+
- Menu/router config: `{ path: '/Project/List', meta: { title: '项目管理' } }`
|
|
14
|
+
|
|
15
|
+
### List Page Patterns: Query vs Search
|
|
16
|
+
|
|
17
|
+
| 模式 | 按钮文本(源码) | URL特征 | 行为 |
|
|
18
|
+
|---|---|---|---|
|
|
19
|
+
| 列表查询/筛选 | "查询" 或 "筛选" | `/List`, `/list`, `/index` | 表格上方表单,过滤不跳转 |
|
|
20
|
+
| 全局搜索 | "搜索" | header/侧边栏 | 触发路由跳转 |
|
|
21
|
+
|
|
22
|
+
**Do not reclassify**: 源码写"查询"就生成"查询",源码写"搜索"就生成"搜索"。不要根据URL或行为推断应该叫什么。
|
|
23
|
+
|
|
24
|
+
## Step Rules
|
|
25
|
+
|
|
26
|
+
- Prefer `driver: "ui"` for structured UI operations.
|
|
27
|
+
- Use `driver: "web"` only for plain browser actions that do not need structured target dispatch.
|
|
28
|
+
- `target` must be non-empty unless `strategy.mode` is `ai_only`.
|
|
29
|
+
- Use API setup steps only when needed to make the UI journey deterministic.
|
|
30
|
+
|
|
31
|
+
### Strategy Selection: Action vs Verification
|
|
32
|
+
|
|
33
|
+
**Operating steps** (click, fill, select, hover): use `structured_first` + midscene fallback.
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{ "strategy": { "mode": "structured_first", "fallback": "midscene" } }
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Verification steps** (assert_text, assert_visible, wait for success/result): prefer `ai_only`. Visual verification is inherently an AI task — toast messages, success prompts, dialog confirmations are transient and their DOM structure varies. Structured locators waste time on the fallback path.
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{ "strategy": { "mode": "ai_only" } }
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
// CORRECT: AI-only verification after critical action
|
|
47
|
+
{
|
|
48
|
+
"id": "s06",
|
|
49
|
+
"name": "验证编辑成功",
|
|
50
|
+
"driver": "ui",
|
|
51
|
+
"action": "act",
|
|
52
|
+
"target": { "label": "操作成功" },
|
|
53
|
+
"strategy": { "mode": "ai_only" },
|
|
54
|
+
"prompt": "检查页面上是否出现'操作成功'的提示消息,确认编辑操作已成功完成",
|
|
55
|
+
"depends_on": ["s05"],
|
|
56
|
+
"timeout_ms": 15000
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Use `structured` only when runtime validation proves the locator is unique and stable. Do NOT use `structured` for verification steps.
|
|
61
|
+
|
|
62
|
+
### Target Format: Scenario → Key Decision Table
|
|
63
|
+
|
|
64
|
+
`target` is a **flat key-value object** (no `by` field). The system resolves in priority: `css → xpath → label → placeholder → role+name → near_text`. Choose the right key based on the scenario:
|
|
65
|
+
|
|
66
|
+
| 场景 | key | 示例 |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| 页面唯一按钮/菜单/tab | `label` + `exact` | `{"label": "新增项目库", "exact": true}` |
|
|
69
|
+
| 表格行操作按钮(每行重复) | `css` 精确定位 | `{"css": "tr:nth-child(2) .edit-btn"}` |
|
|
70
|
+
| 对话框底部确定/取消 | `css` 限定dialog | `{"css": ".el-dialog__footer .el-button--primary"}` |
|
|
71
|
+
| 输入框(有唯一placeholder) | `placeholder` | `{"placeholder": "请输入后台名称"}` |
|
|
72
|
+
| 表单项旁边控件 | `near_text` | `{"near_text": "后台名称"}` |
|
|
73
|
+
| ARIA友好的按钮/组件 | `role` + `name` | `{"role": "button", "name": "确定"}` |
|
|
74
|
+
| 无他法 | `xpath` 或 `ai_only` | `{"xpath": "//button[text()='确定']"}` |
|
|
75
|
+
|
|
76
|
+
**Decision rule**: 先看唯一性(page-level唯一用label,行级重复用css),再看作用域(dialog内用css限定),input优先placeholder。不存在 `{"by": "xxx", "value": "yyy"}` 这种格式。
|
|
77
|
+
|
|
78
|
+
### Assertion Rules
|
|
79
|
+
|
|
80
|
+
**Web/UI steps use assertion ACTIONS, not `assertions[]`:**
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
// CORRECT: 文本断言用 action
|
|
84
|
+
{ "action": "assert_text", "target": { "label": "操作成功" }, "params": { "text": "操作成功" } }
|
|
85
|
+
{ "action": "assert_visible", "target": { "css": ".el-dialog" } }
|
|
86
|
+
{ "action": "assert_url_contains", "params": { "text": "/sadmin/a/org/Project/Gift" } }
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
// WRONG: "text" 不是合法断言类型,web/ui 不走 assertions[]
|
|
91
|
+
{ "assertions": [{ "type": "text", "expected": "礼物库" }] }
|
|
92
|
+
{ "assertions": [{ "type": "visible", "target": { "by": "css", "selector": ".el-dialog" } }] }
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Valid assertion actions: `assert_text`, `assert_visible`, `assert_url_contains`, `assert_any_visible`.
|
|
96
|
+
|
|
97
|
+
API steps use `assertions[]` with types: `equals`, `contains`, `status_code`, `json_path_equals`, `json_path_exists`, `regex`, etc. See `project-dsl-contract.md` for the full list.
|
|
98
|
+
|
|
99
|
+
## Source Evidence
|
|
100
|
+
|
|
101
|
+
Cite at least one planning artifact and one code artifact per case:
|
|
102
|
+
|
|
103
|
+
- Planning: UI spec, frontend tech spec, feature breakdown, or change list.
|
|
104
|
+
- Code: router, page/view, API client, and relevant component/store/hook files.
|
|
105
|
+
|
|
106
|
+
## Positive Mainflow Boundary
|
|
107
|
+
|
|
108
|
+
Allowed: open route, create/edit/run primary record, view success result, save expected state.
|
|
109
|
+
|
|
110
|
+
Not allowed: validation errors, permission differences, responsive/a11y-only checks, empty state checks, browser compatibility, performance timing, or destructive cleanup beyond normal test setup.
|