@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,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: requirements-auditor
|
|
3
|
+
description: First-principles and adversarial reviewer for requirement baselines, assumptions, scope boundaries, and testability.
|
|
4
|
+
tools:
|
|
5
|
+
- read
|
|
6
|
+
- grep
|
|
7
|
+
- find
|
|
8
|
+
- lsp
|
|
9
|
+
model: "@slow"
|
|
10
|
+
thinkingLevel: high
|
|
11
|
+
autoloadSkills:
|
|
12
|
+
- requirement-feasibility-review
|
|
13
|
+
- workflow-requirement-baseline
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
Review the supplied requirement artifacts as a hostile but constructive auditor.
|
|
17
|
+
|
|
18
|
+
Separate user outcomes, constraints, evidence, assumptions, and proposed implementation. Challenge hidden actors, invalid states, permissions, retries, concurrency, compatibility, migration, rollback, observability, and acceptance criteria. Verify project-specific claims against source evidence.
|
|
19
|
+
|
|
20
|
+
Return findings ordered by severity. For each finding include the unsupported claim, failure scenario, evidence, and the minimum decision or artifact change required. Do not rewrite the baseline unless explicitly asked.
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: requirement-feasibility-review
|
|
3
|
+
description: Review a PRD, meeting transcript, feature request, or workflow before requirement baseline to determine whether every promised user outcome is implementable. Use when requirements involve identities, roles, permissions, external APIs, contracts, payments, asynchronous callbacks, historical migration, or unclear handoffs; apply first-principles proof obligations and adversarial counterexamples, then produce evidence-backed gaps and decisions instead of inventing missing rules.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Requirement Feasibility Review
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Prove or disprove that the requested behavior can close end-to-end. Do not turn a polished flowchart into an assumed implementation.
|
|
11
|
+
|
|
12
|
+
In the main delivery chain, run this skill after `workflow-wayfinder` and `workflow-domain-modeling`, and before `workflow-requirement-baseline`. Read the decision map, resolved Wayfinder tickets, domain-model record, and glossary before drawing the falsifiable skeleton. This skill may create or update the requirement review artifact, but must not advance to a baseline unless its blocking findings are resolved.
|
|
13
|
+
|
|
14
|
+
## Inputs And Outputs
|
|
15
|
+
|
|
16
|
+
Read the raw requirement, meeting decisions, relevant existing requirement artifacts, and only the project/context sources needed to verify claims. Treat a later confirmed meeting decision as higher priority than an earlier conflicting PRD statement.
|
|
17
|
+
|
|
18
|
+
If the project has `.planning/requirements/{feature}/`, create or update:
|
|
19
|
+
|
|
20
|
+
- `可实现性审查.md`
|
|
21
|
+
- `可实现性审查.meta.json`
|
|
22
|
+
|
|
23
|
+
Otherwise return the same structure in the response. Read [references/review-method.md](references/review-method.md) and [references/review-template.md](references/review-template.md) before writing an artifact.
|
|
24
|
+
|
|
25
|
+
Maintain a separate evidence-and-boundary ledger throughout the review. Every conclusion must be one of:
|
|
26
|
+
|
|
27
|
+
- `SOURCE_FACT`: exact source text plus locator proves it;
|
|
28
|
+
- `CONFIRMED_DECISION`: the user or an authoritative decision maker chose it;
|
|
29
|
+
- `ACCEPTED_IMPLEMENTATION_DIRECTION`: an explicitly authorized or behavior-preserving technical choice;
|
|
30
|
+
- `DERIVED_QUESTION`: a consequence that the source leaves unspecified;
|
|
31
|
+
- `ASSUMPTION`: a temporary bridge that cannot close the baseline gate.
|
|
32
|
+
|
|
33
|
+
Never write a derived question or implementation direction as if it were a source fact.
|
|
34
|
+
|
|
35
|
+
Use this minimum metadata shape:
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"feature_name": "",
|
|
40
|
+
"status": "in_review | needs_decision | blocked | ready_for_baseline",
|
|
41
|
+
"baseline_gate": "pass | blocked | needs_decision",
|
|
42
|
+
"reviewed_at": "",
|
|
43
|
+
"source_summary": [],
|
|
44
|
+
"claim_count": 0,
|
|
45
|
+
"proven_count": 0,
|
|
46
|
+
"gap_count": 0,
|
|
47
|
+
"critical_finding_ids": [],
|
|
48
|
+
"next_action": ""
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Workflow
|
|
53
|
+
|
|
54
|
+
### 1. Atomize The Source Rules Before Summarizing
|
|
55
|
+
|
|
56
|
+
Do not start from a compressed flow. Extract every normative source statement into a rule ledger first. Preserve its source location and authority. A note, parenthesis, example, exception, historical-data statement, or appendix is a rule when it changes an outcome, state, audience, constraint, or recovery path.
|
|
57
|
+
|
|
58
|
+
Force a separate rule for wording such as `注`, `若/如果`, `除非`, `历史`, `已存在`, `仅`, `必须`, `禁止`, `例外`, `兼容`, `重新`, `变更`, and their semantic equivalents.
|
|
59
|
+
|
|
60
|
+
Every rule must ultimately map to one or more of: a skeleton node, state transition, data mapping, external call, authorization rule, exception path, acceptance scenario, gap, or decision. An unmapped rule blocks a claim of flow completeness.
|
|
61
|
+
|
|
62
|
+
When two source statements appear to conflict, first test whether they govern different actors, data classes, or lifecycle phases. Prefer the more specific rule for its exact scope, and narrow a broader statement only when that preserves both statements without inventing behavior. Record the reconciliation and its scope; raise `CONFLICT` only if no non-invented separation exists.
|
|
63
|
+
|
|
64
|
+
Also classify each statement as `background/problem`, `normative rule`, `trigger/process`, `example/mock`, or `exception/history`. Evaluate the complete behavior chain before raising a gap: a background risk may already be resolved by a later validation or confirmation process. Use this authority order when scopes overlap: confirmed decision → normative rule → trigger/process → scoped exception/history → example/mock/OCR → background motivation. Never invent a separate threshold, popup, state, field, or API from background wording when a higher-authority end-to-end mechanism already fulfills it.
|
|
65
|
+
|
|
66
|
+
Before creating `DERIVED_QUESTION`, `CONFLICT`, or `ASSUMPTION`, document at least two surviving interpretations and the material outcome each changes. If the full source supports one coherent interpretation, record it as a reconciled source rule instead of asking the user. When illustrative numbers conflict with an explicit formula or validation rule, the explicit rule governs and the example must be flagged as non-normative.
|
|
67
|
+
|
|
68
|
+
When a reviewer says a rule is absent, incomplete, or contradictory, locate the raw source before classifying the finding. A compact meeting summary, previous review conclusion, or flowchart is a navigation aid—not proof. Record separately: (a) the exact source-supported rule, and (b) the narrower derived question that remains.
|
|
69
|
+
|
|
70
|
+
### 2. Build A Falsifiable Skeleton
|
|
71
|
+
|
|
72
|
+
Create only the high-level stages and material state boundaries. Label every stage as `evidenced`, `inferred`, `to_expand`, or `issue_placeholder`; never present an inferred happy path as a confirmed requirement.
|
|
73
|
+
|
|
74
|
+
### 3. Expand The Skeleton Breadth-First
|
|
75
|
+
|
|
76
|
+
Expand every unfinished skeleton node by exactly one causal layer per pass: prerequisite, decision, state, external boundary, recovery branch, or downstream consumer. Repeat passes until no material branch or intermediate state is newly introduced.
|
|
77
|
+
|
|
78
|
+
Before classifying an external API input as missing, trace every documented upstream interaction of that node, especially “select type → enter form → submit”. Build a field provenance list: `required API input → candidate form field / existing account field / operation source → collection timing → validation`. A required input is a real gap only when no documented upstream source can provide it, or when the source cannot be unambiguously bound to the external identity.
|
|
79
|
+
|
|
80
|
+
For every user-visible or downstream field, maintain a separate provenance matrix: `field → local submission / external verification result / external detailed record / derived value → permitted use`. Do not infer that a verifier must return full identity data when local submitted data is sufficient for display or document filling; conversely, do not treat locally submitted data as proof that an external verification succeeded.
|
|
81
|
+
|
|
82
|
+
Register an unknown immediately as a typed issue placeholder (`GAP`, `DECISION`, `DEPENDENCY`, `CONFLICT`, `ASSUMPTION`) rather than inventing a connecting step. Continue enumerating independent branches; stop and ask one question when the missing fact makes the next truthful layer impossible.
|
|
83
|
+
|
|
84
|
+
Treat an explicit scope exclusion as a state-changing decision. Mark its affected branches `out_of_scope`, remove it from the current blocking chain, and state which existing behavior remains in force. Do not keep requesting decisions for an excluded capability.
|
|
85
|
+
|
|
86
|
+
### 4. Freeze The Claim Set
|
|
87
|
+
|
|
88
|
+
Extract atomic claims in this form:
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
Actor + trigger + promised outcome + condition + system boundary
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Example: “A new enterprise administrator can click enterprise verification and complete onboarding through an e-sign provider.”
|
|
95
|
+
|
|
96
|
+
Record source and authority for every claim: confirmed meeting decision, PRD, user statement, observed code, external official documentation, or inference. Never silently promote an inference to a requirement.
|
|
97
|
+
|
|
98
|
+
### 5. Build The Capability Chain
|
|
99
|
+
|
|
100
|
+
For each material claim, work backwards from the promised outcome. Require evidence for every link:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
actor identity
|
|
104
|
+
→ authority
|
|
105
|
+
→ required inputs and their source
|
|
106
|
+
→ internal state transition
|
|
107
|
+
→ external/API capability
|
|
108
|
+
→ callback or response
|
|
109
|
+
→ persistence and mapping
|
|
110
|
+
→ user-visible recovery
|
|
111
|
+
→ policy/permission enforcement
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Mark the first missing link as a gap. A click, mockup, or endpoint name is not evidence of a complete chain.
|
|
115
|
+
|
|
116
|
+
### 6. Apply First-Principles Proof Obligations
|
|
117
|
+
|
|
118
|
+
For every branch that changes business state, answer these questions with evidence:
|
|
119
|
+
|
|
120
|
+
1. **Identity** — Who is acting? Is the system identity, legal entity, login account, and external-provider account unambiguously mapped?
|
|
121
|
+
2. **Authority** — Why may this actor perform the action? Cover roles, legal representative/agent authority, ownership, and delegated permissions.
|
|
122
|
+
3. **Inputs** — What exact inputs does the downstream system require? Who supplies each field, when, and how is it verified?
|
|
123
|
+
4. **State** — What is the source of truth before and after the action? Define allowed states and idempotency key where applicable.
|
|
124
|
+
5. **Boundary** — Can the external system/API actually perform the requested operation under the purchased version, app scope, and identity model?
|
|
125
|
+
6. **Evidence** — Which callback, query, or immutable record proves success? Do not use a browser return redirect as final success evidence.
|
|
126
|
+
7. **Recovery** — What happens on pending, failure, refusal, expiration, duplicate callbacks, missing callbacks, and interrupted login?
|
|
127
|
+
8. **Enforcement** — At which entry points must the resulting policy be enforced: login, menu, create, promotion, payment, withdrawal, export, admin edit, or API?
|
|
128
|
+
|
|
129
|
+
When a requirement uses one overloaded business word (for example authorization, approval, verification, activation, confirmation, or synchronization), split it into independently verifiable capabilities before raising a finding. Typical dimensions are: identity proof, data-access consent, action consent, delegated/representative authority, and lifecycle/state transition. Record the actor, timing, scope, data boundary, and success evidence for each. Do not infer that satisfying one capability satisfies another merely because the UI or vendor uses the same word.
|
|
130
|
+
|
|
131
|
+
For authentication, authorization, signature, approval, or similar third-party legal/eligibility actions, separately prove two layers: **local product permission** (who can enter, initiate, create related accounts, or view results) and **external qualification** (who is a legal representative, authorized agent, seal holder, or otherwise eligible). Never infer external legal qualification from a local role. Conversely, third-party qualification checks do not remove the need to define local entry, preconditions, and failure handling.
|
|
132
|
+
|
|
133
|
+
### 7. Run Adversarial Review
|
|
134
|
+
|
|
135
|
+
Attack every “obvious” step with the smallest realistic counterexample. At minimum test relevant variants below:
|
|
136
|
+
|
|
137
|
+
| Attack | Ask |
|
|
138
|
+
|---|---|
|
|
139
|
+
| Missing prerequisite | What if a required phone, email, entity name, account ID, consent, or mapping does not exist? |
|
|
140
|
+
| Identity split | What if login account, legal entity, payer, signer, recipient, and external account differ? |
|
|
141
|
+
| Role split | What if an employee account performs an action intended for a primary administrator? |
|
|
142
|
+
| State split | What if the external provider is complete but local state is pending, stale, duplicated, or absent? |
|
|
143
|
+
| Time split | What if a contract expires, template changes, a callback arrives late, or a user resumes days later? |
|
|
144
|
+
| History split | What if legacy data cannot be automatically matched, has multiple subjects, or has no record? |
|
|
145
|
+
| Bypass | Can another page, API, role, or cached session bypass the stated gate? |
|
|
146
|
+
| Scope split | Does a vendor feature exist generally but not for this app, purchased edition, environment, or authorization scope? |
|
|
147
|
+
|
|
148
|
+
State the counterexample, the broken promise, and the minimal requirement or technical decision that resolves it.
|
|
149
|
+
|
|
150
|
+
### 8. Gather Evidence Correctly
|
|
151
|
+
|
|
152
|
+
- Read project indexes, navigation, and relevant specs before source inspection.
|
|
153
|
+
- Use the code index for candidate symbols and relations, then read narrow source evidence.
|
|
154
|
+
- Before reading external documentation, record the requirement-selected provider, product family, integration scheme, API version, app/tenant, and environment. Evidence from another version or product family may suggest a candidate approach, but cannot prove or disprove the selected integration.
|
|
155
|
+
- For external capabilities, use current primary documentation and the actual enabled product/version where accessible. “The vendor has an API” is insufficient evidence.
|
|
156
|
+
- Distinguish **supported by official docs**, **confirmed enabled for this project**, **observed in code**, and **not verified**.
|
|
157
|
+
- Do not inspect deeply merely to avoid a decision. Stop once evidence establishes the gap or capability boundary.
|
|
158
|
+
|
|
159
|
+
### 9. Run The Reverse Coverage Gate And Classify Findings
|
|
160
|
+
|
|
161
|
+
For each source rule, identify the exact flow/state node or issue ID that realizes it. For each flow node, identify the source rules or explicitly labeled inference that justify it. A flow is incomplete when either direction is missing.
|
|
162
|
+
|
|
163
|
+
As a final consistency check, verify that no issue was created from a background statement already realized by a later flow node, and that no example/mock/OCR value overrides an explicit rule. Remove stale questions and findings before calculating `gap_count` or the baseline verdict.
|
|
164
|
+
|
|
165
|
+
Only after this reverse pass classify and route findings.
|
|
166
|
+
|
|
167
|
+
Classify each claim:
|
|
168
|
+
|
|
169
|
+
| Verdict | Meaning | Required action |
|
|
170
|
+
|---|---|---|
|
|
171
|
+
| `proven` | Every material link has evidence | Keep as confirmed requirement |
|
|
172
|
+
| `feasible_with_decision` | Technology supports it, but a business rule is missing | Ask one decision-changing question or create a grilling ticket |
|
|
173
|
+
| `feasible_with_gap` | A required input, mapping, state, or screen is absent | Add a concrete requirement gap; do not claim the flow works |
|
|
174
|
+
| `unverified_dependency` | Vendor/project entitlement or contract is unknown | Create a research/validation ticket |
|
|
175
|
+
| `not_feasible_as_written` | A required link cannot be satisfied under current constraints | Reframe requirement or choose another approach |
|
|
176
|
+
|
|
177
|
+
Only say “the requirement is implementable” when all critical claims are `proven`, or their explicitly accepted gaps are planned and non-blocking.
|
|
178
|
+
|
|
179
|
+
Use self-directed technical choices only under one of these conditions:
|
|
180
|
+
|
|
181
|
+
1. the user explicitly delegated the choice; or
|
|
182
|
+
2. the choice preserves every source-visible outcome, adds no business policy, and only selects a minimal technical mechanism.
|
|
183
|
+
|
|
184
|
+
Mark these as `ACCEPTED_IMPLEMENTATION_DIRECTION`, including its scope, why it is behavior-preserving, and its replacement trigger. Do not use a technical preference to resolve a question about money, legal responsibility, data ownership, user rights, exception population, or scope; ask instead.
|
|
185
|
+
|
|
186
|
+
### 10. Ask And Stop Correctly
|
|
187
|
+
|
|
188
|
+
- Ask at most one question at a time; ask the highest-level unresolved decision first.
|
|
189
|
+
- Ask for a decision, not a technical detail the system can discover.
|
|
190
|
+
- If a missing prerequisite invalidates the next step, stop there. Do not continue a fictional happy path.
|
|
191
|
+
- Separate “a solution exists” from “the current requirement includes the solution.”
|
|
192
|
+
|
|
193
|
+
### 11. Process A Rebuttal Without Defending The Prior Finding
|
|
194
|
+
|
|
195
|
+
When the user challenges a finding:
|
|
196
|
+
|
|
197
|
+
1. State the exact broken link the finding claimed, not its label.
|
|
198
|
+
2. Test whether the rebuttal supplies that link using first principles: actor, authority, input source, state transition, external capability, and success evidence.
|
|
199
|
+
3. If it does, mark the original gap resolved or narrow it; record the new confirmed rule and update every impacted flow node and coverage row.
|
|
200
|
+
4. If it only solves a different capability, keep the unsolved link but rewrite the finding in precise terms.
|
|
201
|
+
5. Extract the error pattern into a provider-neutral guardrail in the skill. Never copy the current vendor, field name, or product terminology into the generic workflow.
|
|
202
|
+
|
|
203
|
+
Before accepting the rebuttal or retracting the finding, re-open the cited raw source and state its exact locator. If the source supports the old rule but not the added implication, retain only the implication as the issue. If it supports neither, retract the finding and remove all stale references from the skeleton, coverage matrix, metadata, and next-action field.
|
|
204
|
+
|
|
205
|
+
## Quality Bar
|
|
206
|
+
|
|
207
|
+
The review must make it easy to trace every conclusion back to evidence. Include:
|
|
208
|
+
|
|
209
|
+
- flow inventory and critical capability chains;
|
|
210
|
+
- a claim ledger with source authority;
|
|
211
|
+
- adversarial counterexamples;
|
|
212
|
+
- a gap/decision register with severity and exact next action;
|
|
213
|
+
- an explicit baseline gate verdict.
|
|
214
|
+
|
|
215
|
+
Do not declare a flow complete merely because its skeleton has been drawn. Completion requires: all material skeleton nodes expanded, each critical node proven against the capability chain, and no normative source rule left unmapped.
|
|
216
|
+
|
|
217
|
+
Do not mark the review `ready_for_baseline` while any `ASSUMPTION`, unaccepted implementation direction, unresolved conflict, or critical derived question remains. A `pass` gate reports review readiness only; it must never itself create or advance a requirement baseline.
|
|
218
|
+
|
|
219
|
+
Do not write implementation plans, API contracts, or code unless the user separately requests them.
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# 可实现性审查方法设计
|
|
2
|
+
|
|
3
|
+
## 目标与非目标
|
|
4
|
+
|
|
5
|
+
目标是证明一项需求承诺能否从触发到结果闭环,并在进入基线前暴露缺少的业务规则、数据前提、状态转换、外部能力和权限约束。
|
|
6
|
+
|
|
7
|
+
不以生成漂亮流程图、复述 PRD 或补写实现方案为目标。流程图是待验证结构,不是结论本身。
|
|
8
|
+
|
|
9
|
+
## 一、审查对象模型
|
|
10
|
+
|
|
11
|
+
### 1.1 原文规则
|
|
12
|
+
|
|
13
|
+
最小审查单位是规则,而不是页面或功能模块。
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
Rule = 来源位置 + 触发/条件 + 主体 + 承诺结果 + 约束/例外 + 证据级别
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
规则必须保留原文位置。以下内容强制拆为规则:条件句、注释、脚注、括号、存量兼容、例外名单、时间条件、禁止项、错误说明和跨系统说明。
|
|
20
|
+
|
|
21
|
+
### 1.1.1 证据与判断边界台账
|
|
22
|
+
|
|
23
|
+
任何结论先归类,后进入流程:
|
|
24
|
+
|
|
25
|
+
| 类别 | 可作为什么 | 必须具备什么 | 不可伪装成什么 |
|
|
26
|
+
|---|---|---|---|
|
|
27
|
+
| `SOURCE_FACT` | 已确认业务规则 | 原文摘录和精确位置 | 推断或摘要 |
|
|
28
|
+
| `CONFIRMED_DECISION` | 已确认选择/范围 | 用户或有权决策者的确认 | 原 PRD 原话 |
|
|
29
|
+
| `ACCEPTED_IMPLEMENTATION_DIRECTION` | 实现收敛方向 | 授权或不改变任一业务结果的证明 | 已确认业务政策 |
|
|
30
|
+
| `DERIVED_QUESTION` | 待审查问题 | 它从哪条原文规则推导而来 | 原文缺失本身 |
|
|
31
|
+
| `ASSUMPTION` | 临时骨架占位 | 回收动作和截止点 | 审查通过依据 |
|
|
32
|
+
|
|
33
|
+
每个“缺口”必须写成两段:先列原文已确认的最小规则及位置,再列该规则没有回答的具体问题。禁止把后者改写成“原文没有规则”。
|
|
34
|
+
|
|
35
|
+
### 1.2 流程节点
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
Node = 业务目的 + 前置状态 + 行动者 + 输入 + 状态变化 + 输出/证据
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
节点分为阶段节点、决策节点、状态节点、外部边界节点、恢复节点和问题占位节点。未知事实不可伪装成普通节点。
|
|
42
|
+
|
|
43
|
+
### 1.3 问题占位
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
Issue = ID + 类型 + 断裂链路 + 影响范围 + 严重度 + 需要谁决定/验证
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
类型仅使用:
|
|
50
|
+
|
|
51
|
+
- `GAP`:所需输入、数据映射、页面、状态或规则缺失;
|
|
52
|
+
- `DECISION`:存在多个合理业务语义,必须选一;
|
|
53
|
+
- `DEPENDENCY`:外部产品、版本、权限、配置或历史数据尚未证实;
|
|
54
|
+
- `CONFLICT`:权威来源彼此冲突;
|
|
55
|
+
- `ASSUMPTION`:为暂时画图而作的推断,必须回收验证。
|
|
56
|
+
|
|
57
|
+
### 1.4 概念同名的能力拆分
|
|
58
|
+
|
|
59
|
+
需求中的“授权、审核、验证、确认、激活、同步”等词经常覆盖不同能力,不能把它们当成单一状态。对每个同名概念按下表拆分:
|
|
60
|
+
|
|
61
|
+
| 能力维度 | 要证明的问题 | 常见发生位置 | 不应推导出的结论 |
|
|
62
|
+
|---|---|---|---|
|
|
63
|
+
| 身份证明 | 行动者或主体是谁 | 注册、验证、操作页 | 身份已证明不等于可读取其数据 |
|
|
64
|
+
| 数据访问同意 | 系统可否读取、存储或转发某类数据 | 授权页、隐私同意、回调 | 可读取数据不等于可代为操作 |
|
|
65
|
+
| 行为意愿/确认 | 行动者是否知情并同意某次动作 | 提交、签署、支付、审批页 | 同意本次动作不等于持续数据授权 |
|
|
66
|
+
| 代理/代表权限 | 行动者能否代表另一主体操作 | 委托、审批、角色分配 | 可代理一次不等于拥有主体所有权 |
|
|
67
|
+
| 生命周期状态 | 该能力是否仍有效、可撤销或需续期 | 状态查询、定时检查、重新确认 | 曾经有效不等于当前仍有效 |
|
|
68
|
+
|
|
69
|
+
对每一维记录:行动者、时间、范围、数据边界、成功证据、失效与恢复。不得因任一维已满足,就删除其他维度的证明。
|
|
70
|
+
|
|
71
|
+
### 1.5 内部权限与外部资格分层
|
|
72
|
+
|
|
73
|
+
认证、授权、签署、审批等场景至少有两层:本地产品权限决定谁可进入、发起、创建关联账号或查看结果;外部平台资格决定谁具备法人、受托、印章或其他法定资格。不得从本地角色直接推导外部资格,也不得把外部校验当作本地入口、前置或失败处理无需设计的理由。两层均需分别记录规则、证据和异常路径。
|
|
74
|
+
|
|
75
|
+
## 二、分层构建算法
|
|
76
|
+
|
|
77
|
+
### 阶段 0:规则提取和来源定级
|
|
78
|
+
|
|
79
|
+
1. 读取 PRD、会议结论、用户补充、既有需求工件、代码事实和外部官方材料。
|
|
80
|
+
2. 逐句提取所有会改变系统行为的规则,不生成流程。
|
|
81
|
+
3. 为每条规则编号并记录来源优先级。发生冲突时,以后续已确认会议或用户确认覆盖较早的 PRD。
|
|
82
|
+
4. 标记尚未映射的规则;此时不得声称流程完整。
|
|
83
|
+
|
|
84
|
+
当来源看似冲突时,先检验其是否分别作用于不同角色、数据类别或生命周期阶段。对精确范围采用更具体的规则;只有在不虚构行为且能同时保留两条原文时,才可将宽泛表述收窄解释。必须记录该解释及其边界;无法分层时才登记为 `CONFLICT`。
|
|
85
|
+
|
|
86
|
+
输出:规则台账。
|
|
87
|
+
|
|
88
|
+
#### 质疑与回溯门禁
|
|
89
|
+
|
|
90
|
+
当任何人质疑“这条描述从哪里来”时,暂停扩展该结论:
|
|
91
|
+
|
|
92
|
+
1. 回到原始 PRD、会议逐字稿或用户原话;
|
|
93
|
+
2. 给出精确段落、行号、页码或时间戳;
|
|
94
|
+
3. 拆开“原文已说”与“审查者由此推导”;
|
|
95
|
+
4. 只有原文不支持时才撤回;原文支持但推导过度时,只撤回推导;
|
|
96
|
+
5. 同步修改问题表、骨架、覆盖表、元数据和下一问题。
|
|
97
|
+
|
|
98
|
+
不得因被质疑就立即顺从性撤回,也不得用审查摘要替代原始证据。
|
|
99
|
+
|
|
100
|
+
### 阶段 0.1:外部能力边界锁定
|
|
101
|
+
|
|
102
|
+
凡涉及第三方能力,先建立边界卡:
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
供应商 → 产品族 → 接入方案 → API 版本 → App/租户 → 环境 → 已购权限
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
后续每条官方文档证据必须标注其所属边界。不同产品族、不同版本或不同接入方案的接口不能互相替代;它们最多是待验证候选方案。若需求已经指定版本,先查该版本文档,再讨论其他版本。
|
|
109
|
+
|
|
110
|
+
### 阶段 1:待证伪骨架
|
|
111
|
+
|
|
112
|
+
1. 只从规则台账中抽取不可省略的业务阶段和跨系统状态边界。
|
|
113
|
+
2. 将每个节点标为 `evidenced`、`inferred`、`to_expand` 或 `issue_placeholder`。
|
|
114
|
+
3. 不添加没有来源的“通常会有”的登录、校验、回调、落库或页面步骤。
|
|
115
|
+
4. 将无法连接的规则保留为问题占位,而不是删除。
|
|
116
|
+
|
|
117
|
+
输出:最高层骨架与节点状态。
|
|
118
|
+
|
|
119
|
+
### 阶段 2:广度优先扩充骨架
|
|
120
|
+
|
|
121
|
+
对所有 `to_expand` 节点循环执行“一层扩充”:
|
|
122
|
+
|
|
123
|
+
1. 先补该节点的前置条件和输入来源;
|
|
124
|
+
2. 再补决策分支和状态;
|
|
125
|
+
3. 再补外部调用、回调/查询证据和本地持久化;
|
|
126
|
+
4. 再补恢复路径、历史兼容和下一节点消费者;
|
|
127
|
+
5. 给新节点标注来源规则或 `ASSUMPTION`;未知即建立问题占位。
|
|
128
|
+
|
|
129
|
+
对于每个外部调用,必须先完成“输入血缘检查”,再声称字段缺失:
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
外部必填字段
|
|
133
|
+
→ 上游已有账号字段 / 选择后的表单字段 / 运营配置字段
|
|
134
|
+
→ 采集时机
|
|
135
|
+
→ 校验与外部身份绑定规则
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
不得把“选择类型后进入对应表单”压缩为“选择类型后直接跳转外部平台”。详细交互规则优先用于补全骨架;页面标题、摘要或演示文案不能覆盖已明确的表单与提交步骤。
|
|
139
|
+
|
|
140
|
+
同时建立“字段用途与证据矩阵”:
|
|
141
|
+
|
|
142
|
+
```text
|
|
143
|
+
字段
|
|
144
|
+
→ 来源(本地提交 / 外部状态 / 外部详情 / 派生)
|
|
145
|
+
→ 用途(展示 / 合同填充 / 外部调用 / 准入判断 / 审计)
|
|
146
|
+
→ 是否需要外部真实性证明
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
外部验证服务可以只承担“状态证明”,本地表单可以承担展示和下游填充;两者不得混用。只有需求明确要求展示外部详情,或下游必须使用外部返回的身份标识时,才要求读取外部详情数据。
|
|
150
|
+
|
|
151
|
+
### 阶段 4.1:反驳回归
|
|
152
|
+
|
|
153
|
+
当需求方反驳审查问题时,不为原结论辩护,而是执行固定回归:
|
|
154
|
+
|
|
155
|
+
```text
|
|
156
|
+
原问题断言的链路缺口
|
|
157
|
+
→ 反驳提供的新证据或规则
|
|
158
|
+
→ 是否填补同一缺口
|
|
159
|
+
→ 解决 / 缩小 / 保留但改写
|
|
160
|
+
→ 回写规则台账、骨架、证明卡、覆盖矩阵和技能护栏
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
如果反驳成立,必须说明先前遗漏了哪一类输入、状态、例外或能力维度,并抽象为通用检查项;不得把当前业务系统、外部供应商、字段名称或角色名称写进通用技能。
|
|
164
|
+
|
|
165
|
+
本阶段按轮次进行。先让所有主链路拥有同等深度,再进入下一层;不得只深挖一个看似熟悉的节点。
|
|
166
|
+
|
|
167
|
+
停止条件:连续一轮没有新增材料节点、状态分支或跨系统边界,或某个阻塞问题使下一层不可能诚实构建。
|
|
168
|
+
|
|
169
|
+
输出:包含中间节点、条件分支、系统边界和问题占位的流程拓扑。
|
|
170
|
+
|
|
171
|
+
### 阶段 2.1:范围排除与最小实现方向
|
|
172
|
+
|
|
173
|
+
若用户确认某能力“不做”或“不在本期”,记录为 `CONFIRMED_DECISION / out_of_scope`:说明它影响的节点、当前保留的旧行为、以及未来重新审查触发条件。不得继续把它列为本期阻塞。
|
|
174
|
+
|
|
175
|
+
若用户允许自行决定实现方式,优先选择最小侵入、可替换、集中维护、不会改变原文可观察结果的方案。将其记为 `ACCEPTED_IMPLEMENTATION_DIRECTION`,并写明:
|
|
176
|
+
|
|
177
|
+
```text
|
|
178
|
+
授权范围 / 保持不变的业务结果 / 技术机制 / 配置或数据来源 / 何时需要升级为产品决策
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
技术方案不得替代对资金、主体、法律责任、例外名单或数据归属的业务确认。
|
|
182
|
+
|
|
183
|
+
### 阶段 3:深度证明节点
|
|
184
|
+
|
|
185
|
+
对已收敛的每个材料节点建立证明卡:
|
|
186
|
+
|
|
187
|
+
```text
|
|
188
|
+
身份与主体
|
|
189
|
+
→ 权限/授权
|
|
190
|
+
→ 精确输入及来源/校验
|
|
191
|
+
→ 前后状态和幂等
|
|
192
|
+
→ 内外部能力
|
|
193
|
+
→ 成功证据和落库映射
|
|
194
|
+
→ 失败、暂停、超时、重复、历史恢复
|
|
195
|
+
→ 所有入口的策略拦截
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
任意箭头缺失时,记录第一个断点,节点不可判定为 `proven`。
|
|
199
|
+
|
|
200
|
+
输出:节点证明卡和能力链结论。
|
|
201
|
+
|
|
202
|
+
### 阶段 4:反向覆盖和反方攻击
|
|
203
|
+
|
|
204
|
+
执行两项独立检查:
|
|
205
|
+
|
|
206
|
+
1. **规则到流程**:每条规则必须落到节点、状态、数据、接口、权限、异常、验收或问题之一。
|
|
207
|
+
2. **流程到规则**:每个节点必须有来源规则,或显式标记为推断;无依据节点不得混入确认流程。
|
|
208
|
+
|
|
209
|
+
反方至少攻击:前提缺失、身份分裂、角色越权、内外状态不一致、时间/版本变化、存量数据、入口绕过、外部版本或授权范围不一致。
|
|
210
|
+
|
|
211
|
+
输出:覆盖矩阵、反方案例和问题清单。
|
|
212
|
+
|
|
213
|
+
## 三、阻塞与提问策略
|
|
214
|
+
|
|
215
|
+
先登记所有可独立发现的问题。遇到以下情形立即停止当前分支,并只提出一个能改变结构的最高优先级问题:
|
|
216
|
+
|
|
217
|
+
- 没有身份键,无法查询、授权或关联外部系统;
|
|
218
|
+
- 缺少主体/资金/签约责任归属,后续规则不能安全推断;
|
|
219
|
+
- 两个同等权威来源给出相反的状态或权限结论;
|
|
220
|
+
- 外部能力在已购版本、app、环境或 scope 下尚未证实;
|
|
221
|
+
- 选择任一默认方案都会改变用户、资金、合规或数据归属。
|
|
222
|
+
|
|
223
|
+
不阻断拓扑构建的问题继续登记,待结构收敛后统一给出清单。
|
|
224
|
+
|
|
225
|
+
## 四、基线门禁
|
|
226
|
+
|
|
227
|
+
只有同时满足以下条件才可标记 `ready_for_baseline`:
|
|
228
|
+
|
|
229
|
+
1. 所有规范性原文规则已有覆盖位置或已接受的问题处置;
|
|
230
|
+
2. 所有关键节点完成能力链证明;
|
|
231
|
+
3. 没有未解决的阻塞 `GAP`、`CONFLICT` 或 `DEPENDENCY`;
|
|
232
|
+
4. 所有 `ASSUMPTION` 均已验证、删除或升级为显式决策;
|
|
233
|
+
5. 对抗案例没有暴露可绕过的关键承诺。
|
|
234
|
+
|
|
235
|
+
6. 每个结论都能回溯到 `SOURCE_FACT`、`CONFIRMED_DECISION` 或已接受的、行为保持的实现方向;不存在未回收的 `ASSUMPTION`。
|
|
236
|
+
|
|
237
|
+
否则仅能给出 `needs_decision` 或 `blocked`,不得推进需求基线。
|
|
238
|
+
|
|
239
|
+
`ready_for_baseline` 只表示审查结论已经收束;除非用户明确要求,绝不自动创建或进入需求基线。
|
|
240
|
+
|
|
241
|
+
## 五、外部身份场景示例
|
|
242
|
+
|
|
243
|
+
规则“历史已验证的用户查询验证信息并直接显示完成”至少要求以下链条:
|
|
244
|
+
|
|
245
|
+
```text
|
|
246
|
+
本地业务账号
|
|
247
|
+
→ 可归属的外部身份键
|
|
248
|
+
→ 历史状态查询
|
|
249
|
+
→ 外部主体与本地主体匹配
|
|
250
|
+
→ 同步证据与映射
|
|
251
|
+
→ 脱敏展示
|
|
252
|
+
→ 进入后续签约
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
若本地账号不保证外部查询键,且所选外部接口又以该键查询,必须创建 `GAP`,不能将“跳转验证页面”画成该规则的实现。
|
|
256
|
+
|
|
257
|
+
但若验证前的已确认表单已采集外部查询键,则先将该字段列为候选来源,并审查其与本地账号、本地主体及外部身份的绑定规则;不能直接判定“没有输入来源”。
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# 可实现性审查:{feature}
|
|
2
|
+
|
|
3
|
+
## 审查范围与结论
|
|
4
|
+
|
|
5
|
+
- 审查对象:
|
|
6
|
+
- 基线门禁:`pass | blocked | needs_decision`
|
|
7
|
+
- 关键结论:
|
|
8
|
+
|
|
9
|
+
## 来源优先级
|
|
10
|
+
|
|
11
|
+
| 来源 | 权威级别 | 说明 |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| | confirmed_meeting / prd / user_statement / code / official_docs / inference | |
|
|
14
|
+
|
|
15
|
+
## 证据与判断边界台账
|
|
16
|
+
|
|
17
|
+
| ID | 结论 | 类别(SOURCE_FACT / CONFIRMED_DECISION / ACCEPTED_IMPLEMENTATION_DIRECTION / DERIVED_QUESTION / ASSUMPTION) | 原始证据与定位 | 适用范围/回收条件 |
|
|
18
|
+
|---|---|---|---|---|
|
|
19
|
+
| E-001 | | | | |
|
|
20
|
+
|
|
21
|
+
## 原文规则台账(先于流程)
|
|
22
|
+
|
|
23
|
+
| Rule ID | 原文摘录与位置 | 规则类型 | 权威来源 | 初始覆盖状态 |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| R-001 | | 主路径 / 条件 / 例外 / 历史 / 权限 / 数据 / 异常 / 展示 | | 未映射 |
|
|
26
|
+
|
|
27
|
+
## 待证伪骨架与逐层扩充
|
|
28
|
+
|
|
29
|
+
| 节点 ID | 阶段或状态 | 状态(evidenced / inferred / to_expand / issue_placeholder) | 来源规则 | 本轮新增层 | 关联问题 |
|
|
30
|
+
|---|---|---|---|---|---|
|
|
31
|
+
| N-001 | | | | | |
|
|
32
|
+
|
|
33
|
+
> 先广度优先补齐中间节点、分支和系统边界;完成后才深拆节点。不得把推断的 happy path 标为已确认。
|
|
34
|
+
|
|
35
|
+
## 流程与能力链
|
|
36
|
+
|
|
37
|
+
| Claim | Capability chain | Verdict | Evidence | First gap |
|
|
38
|
+
|---|---|---|---|---|
|
|
39
|
+
|
|
40
|
+
## 节点证明卡
|
|
41
|
+
|
|
42
|
+
| 节点 ID | 身份与权限 | 输入及来源 | 状态变化与幂等 | 外部能力与证据 | 恢复与入口拦截 | Verdict |
|
|
43
|
+
|---|---|---|---|---|---|---|
|
|
44
|
+
| N-001 | | | | | | |
|
|
45
|
+
|
|
46
|
+
## 对抗式审查
|
|
47
|
+
|
|
48
|
+
| Counterexample | Broken promise | Verdict | Minimal resolution |
|
|
49
|
+
|---|---|---|---|
|
|
50
|
+
|
|
51
|
+
## 缺口与决策登记
|
|
52
|
+
|
|
53
|
+
| ID | Severity | Type | Missing fact or decision | Owner | Next action | Blocks baseline |
|
|
54
|
+
|---|---|---|---|---|---|---|
|
|
55
|
+
|
|
56
|
+
> 每条问题补充:已确认原文规则/定位;该规则尚未回答的派生问题;不能以派生问题否定原文规则。
|
|
57
|
+
|
|
58
|
+
## 范围排除与实现方向
|
|
59
|
+
|
|
60
|
+
| ID | 类别 | 决定/方向 | 授权或来源 | 保持不变的业务结果 | 替换触发条件 |
|
|
61
|
+
|---|---|---|---|---|---|
|
|
62
|
+
| D-001 | out_of_scope / accepted_implementation_direction | | | | |
|
|
63
|
+
|
|
64
|
+
## 反向覆盖门禁
|
|
65
|
+
|
|
66
|
+
| Rule ID | 实现位置(节点/状态/接口/验收/问题) | 覆盖结论 | 未覆盖原因 |
|
|
67
|
+
|---|---|---|---|
|
|
68
|
+
| R-001 | | covered / issue_registered / uncovered | |
|
|
69
|
+
|
|
70
|
+
| 节点 ID | 支撑来源规则或推断 ID | 结论 |
|
|
71
|
+
|---|---|---|
|
|
72
|
+
| N-001 | | evidenced / explicitly_inferred / unsupported |
|
|
73
|
+
|
|
74
|
+
## 已确认规则
|
|
75
|
+
|
|
76
|
+
-
|
|
77
|
+
|
|
78
|
+
## 不应假设
|
|
79
|
+
|
|
80
|
+
-
|