pomaster 0.3.0 → 0.4.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 +9 -10
- package/catalog/archetypes/archetype.frontend.error_taxonomy.json +13 -5
- package/catalog/archetypes/archetype.frontend.feature_oriented.json +1 -1
- package/catalog/archetypes/archetype.state.async_command.json +4 -4
- package/catalog/catalog-lock.draft.json +1120 -104
- package/catalog/gates/gate.be.api.contract_checks.json +2 -1
- package/catalog/gates/gate.be.chg.contract_change_checks.json +2 -1
- package/catalog/gates/gate.chg.prechange_checks.json +2 -1
- package/catalog/gates/gate.web.api.request_checks.json +2 -1
- package/catalog/gates/gate.web.grid.checks.json +2 -1
- package/catalog/knowledge/knowledge.api.example_stable_error_code.json +2 -1
- package/catalog/knowledge/knowledge.chg.example_compat_window.json +2 -1
- package/catalog/knowledge/knowledge.chg.example_prop_migration.json +2 -1
- package/catalog/knowledge/knowledge.fp.api.field_drift_no_contract.json +2 -1
- package/catalog/knowledge/knowledge.fp.api.per_page_http_client.json +2 -1
- package/catalog/knowledge/knowledge.fp.be.contract_drift.json +2 -1
- package/catalog/knowledge/knowledge.fp.chg.page_local_padding.json +2 -1
- package/catalog/knowledge/knowledge.fp.grid.global_td_width.json +2 -1
- package/catalog/knowledge/knowledge.web.api.example_get_entity_list.json +2 -1
- package/catalog/knowledge/knowledge.web.grid.example_column_preset.json +2 -1
- package/catalog/policies/authority.be.api_contract_ownership.json +2 -1
- package/catalog/policies/authority.be.contract_ownership.json +2 -1
- package/catalog/policies/authority.chg.change_owners.json +2 -1
- package/catalog/policies/authority.web.api.request_owners.json +2 -1
- package/catalog/policies/authority.web.grid.ownership.json +2 -1
- package/catalog/policies/policy.ai.change_plan_first.json +91 -0
- package/catalog/policies/policy.ai.fact_inference_separation.json +91 -0
- package/catalog/policies/policy.ai.read_search_verify_before_write.json +92 -0
- package/catalog/policies/policy.ai.rule_relaxation_approval.json +91 -0
- package/catalog/policies/policy.api.backward_compat_defaults.json +2 -1
- package/catalog/policies/policy.api.contract_impl_consistency.json +2 -1
- package/catalog/policies/policy.api.no_informal_contract.json +2 -1
- package/catalog/policies/policy.arch.adr_immutable_history.json +91 -0
- package/catalog/policies/policy.arch.decision_tradeoff_record.json +2 -1
- package/catalog/policies/policy.arch.no_convenience_over_boundary.json +93 -0
- package/catalog/policies/policy.arch.prefer_verifiable_option.json +92 -0
- package/catalog/policies/policy.authz.no_gating_proxy_trust.json +99 -0
- package/catalog/policies/policy.authz.permission_scope_expansion_gate.json +99 -0
- package/catalog/policies/policy.authz.server_five_factor_verification.json +101 -0
- package/catalog/policies/policy.be.conc.prefer_db_constraints.json +97 -0
- package/catalog/policies/policy.be.db.expand_migrate_contract.json +97 -0
- package/catalog/policies/policy.be.idem.key_payload_conflict.json +97 -0
- package/catalog/policies/policy.be.model.single_boundary_conversion.json +97 -0
- package/catalog/policies/policy.be.sql.index_for_known_queries.json +97 -0
- package/catalog/policies/policy.be.state.single_rule_source.json +97 -0
- package/catalog/policies/policy.be.txn.short_locks_compensation.json +96 -0
- package/catalog/policies/policy.bound.search_first_entry_only.json +91 -0
- package/catalog/policies/policy.boundary.validate_in_encode_out.json +92 -0
- package/catalog/policies/policy.cache.failure_mode_guards.json +93 -0
- package/catalog/policies/policy.cache.lifecycle_definition.json +2 -1
- package/catalog/policies/policy.cache.schema_versioning.json +91 -0
- package/catalog/policies/policy.cfg.config_attribute_completeness.json +95 -0
- package/catalog/policies/policy.cfg.key_rename_dual_read.json +92 -0
- package/catalog/policies/policy.cfg.no_secret_dispersal.json +90 -0
- package/catalog/policies/policy.cfg.production_safe_defaults.json +92 -0
- package/catalog/policies/policy.cfg.schema_backed_config.json +92 -0
- package/catalog/policies/policy.chg.affect_templates.json +2 -1
- package/catalog/policies/policy.chg.breaking_versioning.json +2 -1
- package/catalog/policies/policy.chg.compat_migration_rollback.json +2 -1
- package/catalog/policies/policy.chg.deprecate_before_delete.json +2 -1
- package/catalog/policies/policy.chg.fix_at_root_cause_level.json +2 -1
- package/catalog/policies/policy.chg.no_unrelated_changes.json +91 -0
- package/catalog/policies/policy.chg.observable_evolution.json +2 -1
- package/catalog/policies/policy.chg.prechange_consumer_scan.json +2 -1
- package/catalog/policies/policy.chg.staged_rollout.json +2 -1
- package/catalog/policies/policy.chg.sync_contract_docs_tests.json +2 -1
- package/catalog/policies/policy.conflict.priority_ladder.json +2 -1
- package/catalog/policies/policy.contract.no_invented_facts.json +93 -0
- package/catalog/policies/policy.dep.admission_six_dimension_check.json +2 -1
- package/catalog/policies/policy.dep.build_path_supply_chain.json +93 -0
- package/catalog/policies/policy.dep.change_surface_review.json +2 -1
- package/catalog/policies/policy.dep.introduction_review.json +2 -1
- package/catalog/policies/policy.dep.no_untrusted_source_no_lock_bypass.json +92 -0
- package/catalog/policies/policy.dep.time_boxed_urgent_exception.json +91 -0
- package/catalog/policies/policy.deploy.no_dev_env_as_production_fact.json +91 -0
- package/catalog/policies/policy.deploy.operational_capabilities.json +93 -0
- package/catalog/policies/policy.deploy.runtime_fact_record.json +97 -0
- package/catalog/policies/policy.derived.single_implementation.json +2 -1
- package/catalog/policies/policy.err.failure_five_part_mapping.json +101 -0
- package/catalog/policies/policy.err.no_internal_detail_exposure.json +97 -0
- package/catalog/policies/policy.err.published_code_immutable.json +98 -0
- package/catalog/policies/policy.evid.acceptance_binds_verifiable_evidence.json +92 -0
- package/catalog/policies/policy.evid.no_silent_gate_removal.json +90 -0
- package/catalog/policies/policy.evid.no_unverifiable_pass.json +92 -0
- package/catalog/policies/policy.flag.cleanup_after_full_rollout.json +94 -0
- package/catalog/policies/policy.flag.consistent_off_state.json +92 -0
- package/catalog/policies/policy.flag.kill_switch.json +91 -0
- package/catalog/policies/policy.flag.lifecycle_metadata.json +93 -0
- package/catalog/policies/policy.flag.not_a_permission.json +92 -0
- package/catalog/policies/policy.gate.p0_non_bypassable.json +92 -0
- package/catalog/policies/policy.gate.risk_factors_confirmed.json +93 -0
- package/catalog/policies/policy.guard.no_check_weakening.json +92 -0
- package/catalog/policies/policy.integration.call_definition_minimum.json +95 -0
- package/catalog/policies/policy.integration.fault_containment.json +94 -0
- package/catalog/policies/policy.job.lifecycle_definition.json +96 -0
- package/catalog/policies/policy.job.no_unmanaged_execution.json +92 -0
- package/catalog/policies/policy.job.operational_features.json +93 -0
- package/catalog/policies/policy.obs.actionable_signals.json +93 -0
- package/catalog/policies/policy.obs.alert_with_owner.json +91 -0
- package/catalog/policies/policy.obs.context_field_baseline.json +91 -0
- package/catalog/policies/policy.obs.correlation_context_minimum.json +2 -1
- package/catalog/policies/policy.obs.no_sensitive_or_unbounded_logging.json +92 -0
- package/catalog/policies/policy.obs.no_sensitive_raw_values.json +93 -0
- package/catalog/policies/policy.obs.rum_dimension_whitelist.json +2 -1
- package/catalog/policies/policy.obs.signal_change_impact.json +91 -0
- package/catalog/policies/policy.obs.source_map_access_control.json +92 -0
- package/catalog/policies/policy.obs.telemetry_lifecycle_declared.json +93 -0
- package/catalog/policies/policy.obs.trace_correlation.json +91 -0
- package/catalog/policies/policy.perf.budget_change_retest.json +91 -0
- package/catalog/policies/policy.perf.evidence_binding.json +95 -0
- package/catalog/policies/policy.perf.observation_dimensions.json +94 -0
- package/catalog/policies/policy.proc.checklist_change_policy.json +91 -0
- package/catalog/policies/policy.proc.pre_code_declaration.json +2 -1
- package/catalog/policies/policy.proc.scope_drift_reclassify.json +91 -0
- package/catalog/policies/policy.prv.processing_scope_re_review.json +97 -0
- package/catalog/policies/policy.prv.sensitive_data_six_facts.json +102 -0
- package/catalog/policies/policy.registry.human_fields_validated_decorrelated.json +93 -0
- package/catalog/policies/policy.rel.no_irreversible_unmonitored_full_release.json +91 -0
- package/catalog/policies/policy.rel.observability_before_ship.json +91 -0
- package/catalog/policies/policy.rel.pre_release_confirmation.json +2 -1
- package/catalog/policies/policy.rel.process_change_needs_drill_audit.json +91 -0
- package/catalog/policies/policy.rel.traceable_build.json +93 -0
- package/catalog/policies/policy.role.domain_decision_authority.json +2 -1
- package/catalog/policies/policy.role.human_signs_for_ai.json +93 -0
- package/catalog/policies/policy.sec.authn_policy_unified.json +91 -0
- package/catalog/policies/policy.sec.no_client_side_trust.json +92 -0
- package/catalog/policies/policy.sec.no_longterm_security_disable.json +91 -0
- package/catalog/policies/policy.sec.no_script_readable_credentials.json +91 -0
- package/catalog/policies/policy.sec.no_secrets_in_client_surface.json +91 -0
- package/catalog/policies/policy.sec.relaxation_approval.json +92 -0
- package/catalog/policies/policy.sec.security_relaxation_gate.json +92 -0
- package/catalog/policies/policy.sec.third_party_execution_register.json +2 -1
- package/catalog/policies/policy.sec.trust_boundary_enforcement.json +93 -0
- package/catalog/policies/policy.sec.upload_download_server_recheck.json +91 -0
- package/catalog/policies/policy.sec.url_source_allowlist.json +91 -0
- package/catalog/policies/policy.spec.admission_criteria.json +2 -1
- package/catalog/policies/policy.spec.derived_view_regeneration.json +2 -1
- package/catalog/policies/policy.spec.draft_not_baseline.json +2 -1
- package/catalog/policies/policy.spec.family_conflict_precedence.json +93 -0
- package/catalog/policies/policy.spec.file_structure_contract.json +2 -1
- package/catalog/policies/policy.spec.freeze_before_use.json +93 -0
- package/catalog/policies/policy.spec.metadata_required.json +2 -1
- package/catalog/policies/policy.spec.post_dev_backfill_classify.json +2 -1
- package/catalog/policies/policy.spec.primary_source_basis.json +93 -0
- package/catalog/policies/policy.spec.procedural_record_not_surrogate.json +2 -1
- package/catalog/policies/policy.spec.semantic_identity.json +2 -1
- package/catalog/policies/policy.spec.unresolved_ledger_gate.json +2 -1
- package/catalog/policies/policy.stack.derived_store_not_authority.json +93 -0
- package/catalog/policies/policy.stack.dual_web_stack_boundary.json +93 -0
- package/catalog/policies/policy.stack.entry_chain_recorded.json +93 -0
- package/catalog/policies/policy.stack.entry_limits_aligned.json +94 -0
- package/catalog/policies/policy.stack.local_form_not_prod_fact.json +93 -0
- package/catalog/policies/policy.stack.multi_datastore_ownership.json +93 -0
- package/catalog/policies/policy.stack.no_implicit_selection.json +2 -1
- package/catalog/policies/policy.stack.persistence_coexistence_scope.json +93 -0
- package/catalog/policies/policy.stack.toolchain_versions_pinned.json +95 -0
- package/catalog/policies/policy.stack.upgrade_compat_verified.json +93 -0
- package/catalog/policies/policy.struct.module_entry_dependency_declared.json +92 -0
- package/catalog/policies/policy.struct.no_unexplained_top_level_dir.json +91 -0
- package/catalog/policies/policy.struct.reuse_proven_structure.json +91 -0
- package/catalog/policies/policy.test.control_nondeterminism_keep_diagnosis.json +91 -0
- package/catalog/policies/policy.test.isolation_and_cleanup.json +93 -0
- package/catalog/policies/policy.test.no_synthetic_stability.json +92 -0
- package/catalog/policies/policy.test.pyramid_and_ci_matrix.json +92 -0
- package/catalog/policies/policy.test.removal_justification.json +91 -0
- package/catalog/policies/policy.test.removal_needs_substitute_evidence.json +91 -0
- package/catalog/policies/policy.test.risk_driven_plan.json +92 -0
- package/catalog/policies/policy.test.stable_observable_assertions.json +92 -0
- package/catalog/policies/policy.tool.discoverable_toolchain.json +92 -0
- package/catalog/policies/policy.tool.no_hand_edit_generated_no_ci_drift.json +91 -0
- package/catalog/policies/policy.tool.no_vendored_body_edits.json +94 -0
- package/catalog/policies/policy.tool.scoped_scan_boundary.json +2 -1
- package/catalog/policies/policy.tool.upgrade_verify_lock_rollback.json +92 -0
- package/catalog/policies/policy.web.api.auth_app_client_split.json +2 -1
- package/catalog/policies/policy.web.api.client_change_impact.json +2 -1
- package/catalog/policies/policy.web.api.domain_api_only.json +2 -1
- package/catalog/policies/policy.web.api.error_normalization.json +2 -1
- package/catalog/policies/policy.web.api.generated_client.json +2 -1
- package/catalog/policies/policy.web.api.late_result_guard.json +2 -1
- package/catalog/policies/policy.web.api.mutation_idempotency.json +2 -1
- package/catalog/policies/policy.web.api.no_network_optimism.json +2 -1
- package/catalog/policies/policy.web.api.query_cancel_stale_drop.json +2 -1
- package/catalog/policies/policy.web.api.request_infrastructure.json +2 -1
- package/catalog/policies/policy.web.api.retry_discipline.json +2 -1
- package/catalog/policies/policy.web.api.session_recovery_split.json +2 -1
- package/catalog/policies/policy.web.api.single_http_client.json +2 -1
- package/catalog/policies/policy.web.api.single_loading_source.json +2 -1
- package/catalog/policies/policy.web.api.transport_vs_business.json +2 -1
- package/catalog/policies/policy.web.api.trusted_endpoint_source.json +2 -1
- package/catalog/policies/policy.web.api.typed_domain_naming.json +2 -1
- package/catalog/policies/policy.web.arch.layer_isolation.json +2 -1
- package/catalog/policies/policy.web.arch.naming_conventions.json +2 -1
- package/catalog/policies/policy.web.arch.public_api_barrel.json +2 -1
- package/catalog/policies/policy.web.chg.controlled_change_triggers.json +2 -1
- package/catalog/policies/policy.web.comp.no_trivial_or_god_component.json +91 -0
- package/catalog/policies/policy.web.comp.public_contract_completeness.json +93 -0
- package/catalog/policies/policy.web.copy.action_object_clarity.json +92 -0
- package/catalog/policies/policy.web.copy.enumerable_placement.json +91 -0
- package/catalog/policies/policy.web.copy.error_next_step.json +92 -0
- package/catalog/policies/policy.web.copy.suppression_ledger_discipline.json +2 -1
- package/catalog/policies/policy.web.grid.column_schema_fields.json +2 -1
- package/catalog/policies/policy.web.grid.config_isolation.json +2 -1
- package/catalog/policies/policy.web.grid.freeze_key_columns.json +2 -1
- package/catalog/policies/policy.web.grid.interaction_registry.json +2 -1
- package/catalog/policies/policy.web.grid.keyboard_clipboard.json +2 -1
- package/catalog/policies/policy.web.grid.schema_driven_shell.json +2 -1
- package/catalog/policies/policy.web.grid.schema_versioning.json +2 -1
- package/catalog/policies/policy.web.grid.server_ops_virtualization.json +2 -1
- package/catalog/policies/policy.web.grid.shell_change_matrix.json +2 -1
- package/catalog/policies/policy.web.grid.width_fix_ladder.json +2 -1
- package/catalog/policies/policy.web.handoff.state_matrix_full.json +94 -0
- package/catalog/policies/policy.web.i18n.copy_key_discipline.json +92 -0
- package/catalog/policies/policy.web.i18n.raw_value_for_compute.json +91 -0
- package/catalog/policies/policy.web.page.region_consistency.json +93 -0
- package/catalog/policies/policy.web.perf.budget_skeleton.json +2 -1
- package/catalog/policies/policy.web.style.ownership_matrix.json +2 -1
- package/catalog/policies/policy.web.track.attempt_result_correlation.json +91 -0
- package/catalog/policies/policy.web.track.consent_lifecycle.json +2 -1
- package/catalog/policies/policy.web.track.no_synthetic_actions.json +92 -0
- package/catalog/policies/policy.web.track.privacy_default_deny.json +2 -1
- package/catalog/policies/policy.web.track.stable_event_keys.json +2 -1
- package/catalog/policies/policy.web.track.typed_client_validation.json +91 -0
- package/catalog/policies/policy.web.uiux.provider_evidence_not_business_truth.json +2 -1
- package/catalog/policies/policy.wf.no_planned_as_verified.json +91 -0
- package/catalog/policies/policy.wf.task_facts_preconfirm.json +94 -0
- package/catalog/policies/profile.baseline.java_enterprise_default.json +96 -0
- package/catalog/sensors/sensor.browser.deterministic.json +2 -1
- package/catalog/sensors/sensor.browser.interactive.json +2 -1
- package/catalog/sensors/sensor.build.static.json +2 -1
- package/catalog/sensors/sensor.contract.conformance.json +2 -1
- package/catalog/sensors/sensor.performance.budget.json +2 -1
- package/catalog/sensors/sensor.production.metric.json +2 -1
- package/catalog/tools/seed_b6b_frontend.py +1424 -0
- package/catalog/tools/seed_b6c_backend.py +1495 -0
- package/catalog/tools/seed_b6d_baseline.py +620 -0
- package/catalog/tools/seed_b6e_evidence.py +1305 -0
- package/catalog/tools/seed_d3_review.py +1105 -0
- package/catalog/tools/seed_v06_batch2_materials.py +27 -18
- package/dist/bin.js +23026 -16635
- package/package.json +2 -1
- package/seeds/baseline/backend/api-contract.md +26 -0
- package/seeds/baseline/backend/architecture.md +31 -0
- package/seeds/baseline/backend/data-access.md +31 -0
- package/seeds/baseline/backend/directory-structure.md +11 -0
- package/seeds/baseline/backend/integration-runtime.md +21 -0
- package/seeds/baseline/backend/quality.md +31 -0
- package/seeds/baseline/backend/stack.yaml +13 -0
- package/seeds/baseline/backend/transaction-concurrency.md +26 -0
- package/seeds/baseline/data/lineage.md +11 -0
- package/seeds/baseline/data/migration.md +11 -0
- package/seeds/baseline/data/model.md +31 -0
- package/seeds/baseline/data/precision-units.md +31 -0
- package/seeds/baseline/data/quality.md +31 -0
- package/seeds/baseline/frontend/api-and-error.md +21 -0
- package/seeds/baseline/frontend/architecture.md +26 -0
- package/seeds/baseline/frontend/design-system.md +21 -0
- package/seeds/baseline/frontend/directory-structure.md +16 -0
- package/seeds/baseline/frontend/quality.md +26 -0
- package/seeds/baseline/frontend/stack.yaml +17 -0
- package/seeds/baseline/frontend/state-and-data.md +26 -0
- package/seeds/baseline/manifest.yaml +32 -0
- package/seeds/baseline/platform/delivery.md +36 -0
- package/seeds/baseline/platform/environment.md +11 -0
- package/seeds/baseline/platform/observability.md +31 -0
- package/seeds/baseline/platform/security.md +26 -0
- package/seeds/manifest.json +2006 -0
- package/seeds/specs/evidence/accessibility.md +89 -0
- package/seeds/specs/evidence/architecture.md +89 -0
- package/seeds/specs/evidence/browser-e2e.md +91 -0
- package/seeds/specs/evidence/build.md +91 -0
- package/seeds/specs/evidence/business-acceptance.md +89 -0
- package/seeds/specs/evidence/complexity-crap.md +97 -0
- package/seeds/specs/evidence/contract.md +89 -0
- package/seeds/specs/evidence/coverage.md +91 -0
- package/seeds/specs/evidence/data-migration.md +91 -0
- package/seeds/specs/evidence/dead-code-duplicate.md +89 -0
- package/seeds/specs/evidence/dependency-supply-chain.md +89 -0
- package/seeds/specs/evidence/index.md +55 -0
- package/seeds/specs/evidence/mutation.md +89 -0
- package/seeds/specs/evidence/performance.md +89 -0
- package/seeds/specs/evidence/release.md +91 -0
- package/seeds/specs/evidence/runtime-observability.md +91 -0
- package/seeds/specs/evidence/security.md +89 -0
- package/seeds/specs/evidence/typecheck-lint.md +91 -0
- package/seeds/specs/evidence/unit-component-integration.md +91 -0
- package/seeds/specs/evidence/visual-regression.md +89 -0
- package/seeds/specs/hard/backend/01-architecture-governance-protocol.md +68 -0
- package/seeds/specs/hard/backend/02-project-structure-governance-protocol.md +68 -0
- package/seeds/specs/hard/backend/03-directory-boundary-protocol.md +68 -0
- package/seeds/specs/hard/backend/04-layering-architecture-protocol.md +68 -0
- package/seeds/specs/hard/backend/05-task-workflow-protocol.md +68 -0
- package/seeds/specs/hard/backend/06-ai-generated-code-protocol.md +68 -0
- package/seeds/specs/hard/backend/07-evidence-acceptance-protocol.md +68 -0
- package/seeds/specs/hard/backend/08-contract-change-protocol.md +68 -0
- package/seeds/specs/hard/backend/09-role-responsibility-protocol.md +68 -0
- package/seeds/specs/hard/backend/10-security-protocol.md +68 -0
- package/seeds/specs/hard/backend/11-environment-configuration-protocol.md +67 -0
- package/seeds/specs/hard/backend/12-api-contract-protocol.md +68 -0
- package/seeds/specs/hard/backend/13-privacy-data-lifecycle-protocol.md +68 -0
- package/seeds/specs/hard/backend/14-business-rules-state-protocol.md +68 -0
- package/seeds/specs/hard/backend/15-data-model-protocol.md +68 -0
- package/seeds/specs/hard/backend/16-error-code-protocol.md +68 -0
- package/seeds/specs/hard/backend/17-permission-authorization-protocol.md +68 -0
- package/seeds/specs/hard/backend/18-database-schema-migration-protocol.md +68 -0
- package/seeds/specs/hard/backend/19-query-index-sql-protocol.md +68 -0
- package/seeds/specs/hard/backend/20-transaction-boundary-protocol.md +68 -0
- package/seeds/specs/hard/backend/21-concurrency-locking-protocol.md +68 -0
- package/seeds/specs/hard/backend/22-idempotency-protocol.md +68 -0
- package/seeds/specs/hard/backend/23-cache-redis-consistency-protocol.md +68 -0
- package/seeds/specs/hard/backend/24-external-integration-resilience-protocol.md +68 -0
- package/seeds/specs/hard/backend/25-async-job-scheduler-protocol.md +68 -0
- package/seeds/specs/hard/backend/26-engineering-tooling-protocol.md +68 -0
- package/seeds/specs/hard/backend/27-dependency-supply-chain-protocol.md +68 -0
- package/seeds/specs/hard/backend/28-testing-protocol.md +68 -0
- package/seeds/specs/hard/backend/29-observability-logging-tracing-protocol.md +68 -0
- package/seeds/specs/hard/backend/30-performance-capacity-protocol.md +68 -0
- package/seeds/specs/hard/backend/31-runtime-deployment-protocol.md +68 -0
- package/seeds/specs/hard/backend/32-release-versioning-rollback-protocol.md +68 -0
- package/seeds/specs/hard/backend/index.md +177 -0
- package/seeds/specs/hard/frontend/01-development-checklist-protocol.md +86 -0
- package/seeds/specs/hard/frontend/02-ai-generated-code-protocol.md +82 -0
- package/seeds/specs/hard/frontend/03-acceptance-gate-protocol.md +86 -0
- package/seeds/specs/hard/frontend/04-security-protocol.md +283 -0
- package/seeds/specs/hard/frontend/05-environment-configuration-protocol.md +80 -0
- package/seeds/specs/hard/frontend/06-change-governance-protocol.md +90 -0
- package/seeds/specs/hard/frontend/07-frontend-backend-communication-protocol.md +219 -0
- package/seeds/specs/hard/frontend/08-role-responsibility-protocol.md +80 -0
- package/seeds/specs/hard/frontend/09-module-boundary-protocol.md +81 -0
- package/seeds/specs/hard/frontend/10-engineering-tooling-protocol.md +89 -0
- package/seeds/specs/hard/frontend/11-dependency-package-management-protocol.md +87 -0
- package/seeds/specs/hard/frontend/12-business-rules-protocol.md +79 -0
- package/seeds/specs/hard/frontend/13-monetary-precision-protocol.md +81 -0
- package/seeds/specs/hard/frontend/14-data-model-protocol.md +85 -0
- package/seeds/specs/hard/frontend/15-request-api-protocol.md +87 -0
- package/seeds/specs/hard/frontend/16-error-handling-protocol.md +79 -0
- package/seeds/specs/hard/frontend/17-permission-protocol.md +79 -0
- package/seeds/specs/hard/frontend/18-state-management-protocol.md +88 -0
- package/seeds/specs/hard/frontend/19-cache-protocol.md +79 -0
- package/seeds/specs/hard/frontend/20-testing-protocol.md +88 -0
- package/seeds/specs/hard/frontend/21-design-system-protocol.md +79 -0
- package/seeds/specs/hard/frontend/22-theme-protocol.md +79 -0
- package/seeds/specs/hard/frontend/23-accessibility-protocol.md +189 -0
- package/seeds/specs/hard/frontend/24-component-protocol.md +80 -0
- package/seeds/specs/hard/frontend/25-page-structure-protocol.md +79 -0
- package/seeds/specs/hard/frontend/26-style-layout-protocol.md +80 -0
- package/seeds/specs/hard/frontend/27-rendering-state-protocol.md +81 -0
- package/seeds/specs/hard/frontend/28-form-protocol.md +88 -0
- package/seeds/specs/hard/frontend/29-routing-url-protocol.md +79 -0
- package/seeds/specs/hard/frontend/30-data-grid-protocol.md +83 -0
- package/seeds/specs/hard/frontend/31-performance-protocol.md +137 -0
- package/seeds/specs/hard/frontend/32-file-import-export-protocol.md +80 -0
- package/seeds/specs/hard/frontend/33-release-versioning-protocol.md +79 -0
- package/seeds/specs/hard/frontend/34-monitoring-logging-protocol.md +128 -0
- package/seeds/specs/hard/frontend/35-mock-protocol.md +97 -0
- package/seeds/specs/hard/frontend/36-feature-flag-protocol.md +79 -0
- package/seeds/specs/hard/frontend/37-browser-device-compatibility-protocol.md +83 -0
- package/seeds/specs/hard/frontend/38-internationalization-protocol.md +243 -0
- package/seeds/specs/hard/frontend/39-copywriting-protocol.md +79 -0
- package/seeds/specs/hard/frontend/40-analytics-protocol.md +98 -0
- package/seeds/specs/hard/frontend/41-design-handoff-protocol.md +80 -0
- package/seeds/specs/hard/frontend/42-browser-runtime-lifecycle-protocol.md +86 -0
- package/seeds/specs/hard/frontend/43-time-temporal-protocol.md +86 -0
- package/seeds/specs/hard/frontend/44-privacy-data-lifecycle-protocol.md +87 -0
- package/seeds/specs/hard/frontend/45-browser-storage-protocol.md +87 -0
- package/seeds/specs/hard/frontend/index.md +308 -0
- package/seeds/specs/hard/stacks/java/index.md +20 -0
- package/seeds/specs/hard/stacks/java/java-language-overlay.md +35 -0
- package/seeds/specs/hard/stacks/jpa/index.md +20 -0
- package/seeds/specs/hard/stacks/jpa/jpa-persistence-overlay.md +35 -0
- package/seeds/specs/hard/stacks/kubernetes-ingress/index.md +20 -0
- package/seeds/specs/hard/stacks/kubernetes-ingress/kubernetes-ingress-overlay.md +35 -0
- package/seeds/specs/hard/stacks/messaging/index.md +20 -0
- package/seeds/specs/hard/stacks/messaging/messaging-reliability-overlay.md +35 -0
- package/seeds/specs/hard/stacks/mybatis/index.md +20 -0
- package/seeds/specs/hard/stacks/mybatis/mybatis-persistence-overlay.md +35 -0
- package/seeds/specs/hard/stacks/mysql/index.md +20 -0
- package/seeds/specs/hard/stacks/mysql/mysql-database-overlay.md +35 -0
- package/seeds/specs/hard/stacks/nginx/index.md +20 -0
- package/seeds/specs/hard/stacks/nginx/nginx-proxy-overlay.md +35 -0
- package/seeds/specs/hard/stacks/postgresql/index.md +20 -0
- package/seeds/specs/hard/stacks/postgresql/postgresql-database-overlay.md +35 -0
- package/seeds/specs/hard/stacks/redis/index.md +20 -0
- package/seeds/specs/hard/stacks/redis/redis-cache-overlay.md +35 -0
- package/seeds/specs/hard/stacks/spring-batch/index.md +20 -0
- package/seeds/specs/hard/stacks/spring-batch/spring-batch-job-overlay.md +35 -0
- package/seeds/specs/hard/stacks/spring-boot/index.md +20 -0
- package/seeds/specs/hard/stacks/spring-boot/spring-boot-application-overlay.md +35 -0
- package/seeds/specs/hard/stacks/spring-mvc/index.md +20 -0
- package/seeds/specs/hard/stacks/spring-mvc/spring-mvc-web-overlay.md +35 -0
- package/seeds/specs/hard/stacks/spring-webflux/index.md +20 -0
- package/seeds/specs/hard/stacks/spring-webflux/spring-webflux-reactive-overlay.md +35 -0
- package/seeds/specs/hard/stacks/tomcat/index.md +20 -0
- package/seeds/specs/hard/stacks/tomcat/tomcat-runtime-overlay.md +35 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Evidence Spec — 发布
|
|
2
|
+
|
|
3
|
+
- 路径:specs/evidence/release.md
|
|
4
|
+
- 对象面词形:SPEC.RELEASE(B2 Evidence Spec 一等对象——kind=business_rule + payload.spec_kind=evidence_spec 判别;本文件是项目可编辑要求面,对应对象由 init 步骤 4.7 预植 SPEC.* store 对象(PROPOSED 起步,裁定批 D D2);本文件为该对象 requirements 的播种底稿,对象演进归项目运行时 applyTransaction)
|
|
5
|
+
- 语义锚:Project-Store PRD §13(Evidence Spec Kit)——要求面非证据面:持要求不持判定,判定值只在 Verification Result(claim 四态)/Gate Result(七态)。
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
本 Spec 定义「发布可信」这一证据的要求:发布制品 hash 可追溯,审批链完整,版本词形与回滚面对照 baseline/platform/delivery.md 登记逐项在座。
|
|
10
|
+
|
|
11
|
+
## Subjects
|
|
12
|
+
|
|
13
|
+
- 发布单元(以 baseline/platform/delivery.md 登记的发布单元为准)。
|
|
14
|
+
|
|
15
|
+
## Claims
|
|
16
|
+
|
|
17
|
+
- claim 词形:CLM-*(07 schema 词面);claim 由运行时 record 通路登记(UNVERIFIED 起步,声称方禁自填 VERIFIED)——本 Spec 只定义可立 claim 的语句类型,不产生判定值。
|
|
18
|
+
|
|
19
|
+
- 可立 claim 语句类型:「release artifact is traceable, approved and rollback-capable」类。
|
|
20
|
+
|
|
21
|
+
## Required Observations
|
|
22
|
+
|
|
23
|
+
- 制品清单及内容寻址 hash(与构建产物对账——SPEC.BUILD 产物引用)。
|
|
24
|
+
|
|
25
|
+
- 版本词形与来源(登记引用);审批链记录(逐节点:角色/结论)。
|
|
26
|
+
|
|
27
|
+
- 回滚面:方案在座且具备可执行性(演练记录或论证)。
|
|
28
|
+
|
|
29
|
+
## Allowed Producers
|
|
30
|
+
|
|
31
|
+
- 构建通路(制品 hash);审批登记面(审批链);禁以聊天记录替代登记审批。
|
|
32
|
+
|
|
33
|
+
## Tool Bindings
|
|
34
|
+
|
|
35
|
+
- 制品库与审批登记面由项目登记(baseline/platform/delivery.md 引用);hash 词形内容寻址(PRD §3.4 同源纪律)。
|
|
36
|
+
|
|
37
|
+
## Assertions
|
|
38
|
+
|
|
39
|
+
- 判定资格总则:四值词形闭包(PASS/FAIL/UNKNOWN/NOT_RUN——PRD §13.1;禁发明第五值);判卷执行归 Verification Result(claim 四态)/Gate Result(七态),本文件不自填判定值。
|
|
40
|
+
|
|
41
|
+
- 资格判定:可满足本 Spec 条款的 claim/run 必须出自对象面 requirements 资格清单(claim_refs/gate_refs 在册;资格外一律不满足,跨对象借证=资格不成立——21-evidence-spec kind profile 词形)。
|
|
42
|
+
|
|
43
|
+
### PASS
|
|
44
|
+
|
|
45
|
+
- 资格:全部 Required Observations 在座且出自 Allowed Producers/Tool Bindings 资格面;Required Artifacts 齐备且可取回;要求条款逐条满足。
|
|
46
|
+
|
|
47
|
+
- 本 Spec 具体条款:制品 hash 与构建产物一致;审批链完整;版本与回滚面登记在座。
|
|
48
|
+
|
|
49
|
+
- 判定值由 Verification Result / Gate Result 写——本文件不自填 PASS。
|
|
50
|
+
|
|
51
|
+
### FAIL
|
|
52
|
+
|
|
53
|
+
- 资格:任一必需要求不满足(观察缺席/出自资格外生产者/工件缺席或不可解析/claim_refs·gate_refs 清单外或跨对象借证)。
|
|
54
|
+
|
|
55
|
+
- 本 Spec 具体情形:hash 对不上;审批缺节点;回滚面缺席。
|
|
56
|
+
|
|
57
|
+
### UNKNOWN
|
|
58
|
+
|
|
59
|
+
- 证据在座但不足以判定(receipt 维度不全/工件损坏/口径未登记)——诚实位,禁当 PASS 呈现;补证后重判。
|
|
60
|
+
|
|
61
|
+
### NOT_RUN
|
|
62
|
+
|
|
63
|
+
- 本证据类型未被产出(工具未执行/环境缺席)或范围显式不适用且例外已登记——显式缺席诚实位,禁把未跑写成 PASS/UNKNOWN。
|
|
64
|
+
|
|
65
|
+
## Required Artifacts
|
|
66
|
+
|
|
67
|
+
- 制品(内容寻址引用);审批记录;回滚演练/论证材料。
|
|
68
|
+
|
|
69
|
+
## Retention
|
|
70
|
+
|
|
71
|
+
- 证据与 raw artifact 至少保留至对应 claim 关账;发布面证据按 baseline/platform/delivery.md 登记的保留策略;blob 面优先内容寻址(PRD §3.4)。
|
|
72
|
+
|
|
73
|
+
## Exceptions
|
|
74
|
+
|
|
75
|
+
- 紧急发布快速通道逐次登记(理由+事后补审时限);补审逾期即登记违规。
|
|
76
|
+
|
|
77
|
+
## Activation Guidance
|
|
78
|
+
|
|
79
|
+
- 激活时点:每次发布;回滚后重新发布。
|
|
80
|
+
|
|
81
|
+
## Ownership
|
|
82
|
+
|
|
83
|
+
- 要求属主:项目 Owner(条款与例外裁决)。
|
|
84
|
+
|
|
85
|
+
- 证据生产:变更执行 lane 角色(Activation Guidance 所列时点);判定:Verification/Gate 通路——角色分离,生产者不得自判 PASS。
|
|
86
|
+
|
|
87
|
+
## Change Policy
|
|
88
|
+
|
|
89
|
+
- 本文件是项目可编辑要求面:条款修订走项目变更流程(CHANGE.* 登记);要求条款(必要性)修订需 Owner 确认,措辞/呈现类修订不受限。
|
|
90
|
+
|
|
91
|
+
- 阈值联动:数值阈值只住 baseline/quality 登记(§13.2「阈值必须项目化」);本文件修订只改要求条款,不改阈值数字。
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Evidence Spec — 运行时可观测
|
|
2
|
+
|
|
3
|
+
- 路径:specs/evidence/runtime-observability.md
|
|
4
|
+
- 对象面词形:SPEC.RUNTIME_OBSERVABILITY(B2 Evidence Spec 一等对象——kind=business_rule + payload.spec_kind=evidence_spec 判别;本文件是项目可编辑要求面,对应对象由 init 步骤 4.7 预植 SPEC.* store 对象(PROPOSED 起步,裁定批 D D2);本文件为该对象 requirements 的播种底稿,对象演进归项目运行时 applyTransaction)
|
|
5
|
+
- 语义锚:Project-Store PRD §13(Evidence Spec Kit)——要求面非证据面:持要求不持判定,判定值只在 Verification Result(claim 四态)/Gate Result(七态)。
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
本 Spec 定义「运行时行为可观测」这一证据的要求:部署锚与 log/metric/trace 登记面(baseline/platform/observability.md 口径)在目标环境可取回,关联 ID 贯通请求链路。
|
|
10
|
+
|
|
11
|
+
## Subjects
|
|
12
|
+
|
|
13
|
+
- 变更部署到的运行环境与环境登记(ENV.* 面;环境差异以 baseline/platform/environment.md 登记为准)。
|
|
14
|
+
|
|
15
|
+
## Claims
|
|
16
|
+
|
|
17
|
+
- claim 词形:CLM-*(07 schema 词面);claim 由运行时 record 通路登记(UNVERIFIED 起步,声称方禁自填 VERIFIED)——本 Spec 只定义可立 claim 的语句类型,不产生判定值。
|
|
18
|
+
|
|
19
|
+
- 可立 claim 语句类型:「registered observability surfaces are retrievable in the target environment」类。
|
|
20
|
+
|
|
21
|
+
## Required Observations
|
|
22
|
+
|
|
23
|
+
- 部署锚(部署清单/版本/实例)与目标环境登记一致。
|
|
24
|
+
|
|
25
|
+
- log/metric/trace 各面取样(按 baseline 登记口径);关联 ID 贯通证明(同一请求跨面可串联)。
|
|
26
|
+
|
|
27
|
+
- audit 面(登记的审计事件可取回,如适用)。
|
|
28
|
+
|
|
29
|
+
## Allowed Producers
|
|
30
|
+
|
|
31
|
+
- 目标环境的观测通道取样(读侧);取样必须带环境锚,禁跨环境混样。
|
|
32
|
+
|
|
33
|
+
## Tool Bindings
|
|
34
|
+
|
|
35
|
+
- 观测通道由项目登记(baseline/platform/observability.md 引用);证据形态对应 evidence-model 五类中 runtime-deployment 类。
|
|
36
|
+
|
|
37
|
+
## Assertions
|
|
38
|
+
|
|
39
|
+
- 判定资格总则:四值词形闭包(PASS/FAIL/UNKNOWN/NOT_RUN——PRD §13.1;禁发明第五值);判卷执行归 Verification Result(claim 四态)/Gate Result(七态),本文件不自填判定值。
|
|
40
|
+
|
|
41
|
+
- 资格判定:可满足本 Spec 条款的 claim/run 必须出自对象面 requirements 资格清单(claim_refs/gate_refs 在册;资格外一律不满足,跨对象借证=资格不成立——21-evidence-spec kind profile 词形)。
|
|
42
|
+
|
|
43
|
+
### PASS
|
|
44
|
+
|
|
45
|
+
- 资格:全部 Required Observations 在座且出自 Allowed Producers/Tool Bindings 资格面;Required Artifacts 齐备且可取回;要求条款逐条满足。
|
|
46
|
+
|
|
47
|
+
- 本 Spec 具体条款:登记 observation 面逐项可取回;关联 ID 贯通;部署锚与环境登记一致。
|
|
48
|
+
|
|
49
|
+
- 判定值由 Verification Result / Gate Result 写——本文件不自填 PASS。
|
|
50
|
+
|
|
51
|
+
### FAIL
|
|
52
|
+
|
|
53
|
+
- 资格:任一必需要求不满足(观察缺席/出自资格外生产者/工件缺席或不可解析/claim_refs·gate_refs 清单外或跨对象借证)。
|
|
54
|
+
|
|
55
|
+
- 本 Spec 具体情形:登记面在目标环境不可取回;关联 ID 断链;环境漂移未登记。
|
|
56
|
+
|
|
57
|
+
### UNKNOWN
|
|
58
|
+
|
|
59
|
+
- 证据在座但不足以判定(receipt 维度不全/工件损坏/口径未登记)——诚实位,禁当 PASS 呈现;补证后重判。
|
|
60
|
+
|
|
61
|
+
### NOT_RUN
|
|
62
|
+
|
|
63
|
+
- 本证据类型未被产出(工具未执行/环境缺席)或范围显式不适用且例外已登记——显式缺席诚实位,禁把未跑写成 PASS/UNKNOWN。
|
|
64
|
+
|
|
65
|
+
## Required Artifacts
|
|
66
|
+
|
|
67
|
+
- 取样原始数据(blob);部署锚快照。
|
|
68
|
+
|
|
69
|
+
## Retention
|
|
70
|
+
|
|
71
|
+
- 证据与 raw artifact 至少保留至对应 claim 关账;发布面证据按 baseline/platform/delivery.md 登记的保留策略;blob 面优先内容寻址(PRD §3.4)。
|
|
72
|
+
|
|
73
|
+
## Exceptions
|
|
74
|
+
|
|
75
|
+
- 环境级豁免(如本地环境无 trace 后端)逐环境登记(理由+目标环境复归条件)。
|
|
76
|
+
|
|
77
|
+
## Activation Guidance
|
|
78
|
+
|
|
79
|
+
- 激活时点:部署后验证;运行时缺陷排查收口;发布前演练。
|
|
80
|
+
|
|
81
|
+
## Ownership
|
|
82
|
+
|
|
83
|
+
- 要求属主:项目 Owner(条款与例外裁决)。
|
|
84
|
+
|
|
85
|
+
- 证据生产:变更执行 lane 角色(Activation Guidance 所列时点);判定:Verification/Gate 通路——角色分离,生产者不得自判 PASS。
|
|
86
|
+
|
|
87
|
+
## Change Policy
|
|
88
|
+
|
|
89
|
+
- 本文件是项目可编辑要求面:条款修订走项目变更流程(CHANGE.* 登记);要求条款(必要性)修订需 Owner 确认,措辞/呈现类修订不受限。
|
|
90
|
+
|
|
91
|
+
- 阈值联动:数值阈值只住 baseline/quality 登记(§13.2「阈值必须项目化」);本文件修订只改要求条款,不改阈值数字。
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Evidence Spec — 安全核查
|
|
2
|
+
|
|
3
|
+
- 路径:specs/evidence/security.md
|
|
4
|
+
- 对象面词形:SPEC.SECURITY(B2 Evidence Spec 一等对象——kind=business_rule + payload.spec_kind=evidence_spec 判别;本文件是项目可编辑要求面,对应对象由 init 步骤 4.7 预植 SPEC.* store 对象(PROPOSED 起步,裁定批 D D2);本文件为该对象 requirements 的播种底稿,对象演进归项目运行时 applyTransaction)
|
|
5
|
+
- 语义锚:Project-Store PRD §13(Evidence Spec Kit)——要求面非证据面:持要求不持判定,判定值只在 Verification Result(claim 四态)/Gate Result(七态)。
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
本 Spec 定义「安全核查通过」这一证据的要求:三条独立腿(secret 泄露扫描/依赖漏洞审计/静态分析)各自产出发现清单并各自判定(vNext 既有 SECURITY 门禁三腿语义:三个独立 adapter,禁止合并为单一 security ok 绿灯),未处置发现逐腿呈现。
|
|
10
|
+
|
|
11
|
+
## Subjects
|
|
12
|
+
|
|
13
|
+
- 变更触碰代码与仓库面(密钥/凭据/依赖声明)。
|
|
14
|
+
|
|
15
|
+
## Claims
|
|
16
|
+
|
|
17
|
+
- claim 词形:CLM-*(07 schema 词面);claim 由运行时 record 通路登记(UNVERIFIED 起步,声称方禁自填 VERIFIED)——本 Spec 只定义可立 claim 的语句类型,不产生判定值。
|
|
18
|
+
|
|
19
|
+
- 可立 claim 语句类型:「three security legs each pass with zero unhandled findings」类。
|
|
20
|
+
|
|
21
|
+
## Required Observations
|
|
22
|
+
|
|
23
|
+
- 三腿各自:工具/范围/发现清单(逐条:类别/严重度/位置)/误报与豁免登记。
|
|
24
|
+
|
|
25
|
+
- 未处置发现汇总(逐腿)。
|
|
26
|
+
|
|
27
|
+
## Allowed Producers
|
|
28
|
+
|
|
29
|
+
- 三腿各自独立工具执行(vNext 既有词形族:gitleaks/pip_audit/semgrep 类);任一腿缺席=本证据 NOT_RUN,禁以其余腿补位。
|
|
30
|
+
|
|
31
|
+
## Tool Bindings
|
|
32
|
+
|
|
33
|
+
- 三腿工具由项目登记(登记配置锚在座);腿间禁合并判定(聚合绿灯=资格不成立)。
|
|
34
|
+
|
|
35
|
+
## Assertions
|
|
36
|
+
|
|
37
|
+
- 判定资格总则:四值词形闭包(PASS/FAIL/UNKNOWN/NOT_RUN——PRD §13.1;禁发明第五值);判卷执行归 Verification Result(claim 四态)/Gate Result(七态),本文件不自填判定值。
|
|
38
|
+
|
|
39
|
+
- 资格判定:可满足本 Spec 条款的 claim/run 必须出自对象面 requirements 资格清单(claim_refs/gate_refs 在册;资格外一律不满足,跨对象借证=资格不成立——21-evidence-spec kind profile 词形)。
|
|
40
|
+
|
|
41
|
+
### PASS
|
|
42
|
+
|
|
43
|
+
- 资格:全部 Required Observations 在座且出自 Allowed Producers/Tool Bindings 资格面;Required Artifacts 齐备且可取回;要求条款逐条满足。
|
|
44
|
+
|
|
45
|
+
- 本 Spec 具体条款:三腿各自零未处置发现(发现=已处置或已登记豁免)。
|
|
46
|
+
|
|
47
|
+
- 判定值由 Verification Result / Gate Result 写——本文件不自填 PASS。
|
|
48
|
+
|
|
49
|
+
### FAIL
|
|
50
|
+
|
|
51
|
+
- 资格:任一必需要求不满足(观察缺席/出自资格外生产者/工件缺席或不可解析/claim_refs·gate_refs 清单外或跨对象借证)。
|
|
52
|
+
|
|
53
|
+
- 本 Spec 具体情形:任一腿存在未处置发现;腿缺席冒充通过。
|
|
54
|
+
|
|
55
|
+
### UNKNOWN
|
|
56
|
+
|
|
57
|
+
- 证据在座但不足以判定(receipt 维度不全/工件损坏/口径未登记)——诚实位,禁当 PASS 呈现;补证后重判。
|
|
58
|
+
|
|
59
|
+
### NOT_RUN
|
|
60
|
+
|
|
61
|
+
- 本证据类型未被产出(工具未执行/环境缺席)或范围显式不适用且例外已登记——显式缺席诚实位,禁把未跑写成 PASS/UNKNOWN。
|
|
62
|
+
|
|
63
|
+
## Required Artifacts
|
|
64
|
+
|
|
65
|
+
- 三腿各自原始输出;豁免登记引用。
|
|
66
|
+
|
|
67
|
+
## Retention
|
|
68
|
+
|
|
69
|
+
- 证据与 raw artifact 至少保留至对应 claim 关账;发布面证据按 baseline/platform/delivery.md 登记的保留策略;blob 面优先内容寻址(PRD §3.4)。
|
|
70
|
+
|
|
71
|
+
## Exceptions
|
|
72
|
+
|
|
73
|
+
- 逐发现豁免(理由+期限+复核触发),按腿登记;期限到期未复核即转 FAIL。
|
|
74
|
+
|
|
75
|
+
## Activation Guidance
|
|
76
|
+
|
|
77
|
+
- 激活时点:代码/依赖变更提交前;CI 门禁放行前;发布前。
|
|
78
|
+
|
|
79
|
+
## Ownership
|
|
80
|
+
|
|
81
|
+
- 要求属主:项目 Owner(条款与例外裁决)。
|
|
82
|
+
|
|
83
|
+
- 证据生产:变更执行 lane 角色(Activation Guidance 所列时点);判定:Verification/Gate 通路——角色分离,生产者不得自判 PASS。
|
|
84
|
+
|
|
85
|
+
## Change Policy
|
|
86
|
+
|
|
87
|
+
- 本文件是项目可编辑要求面:条款修订走项目变更流程(CHANGE.* 登记);要求条款(必要性)修订需 Owner 确认,措辞/呈现类修订不受限。
|
|
88
|
+
|
|
89
|
+
- 阈值联动:数值阈值只住 baseline/quality 登记(§13.2「阈值必须项目化」);本文件修订只改要求条款,不改阈值数字。
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Evidence Spec — 类型检查与静态检查
|
|
2
|
+
|
|
3
|
+
- 路径:specs/evidence/typecheck-lint.md
|
|
4
|
+
- 对象面词形:SPEC.TYPECHECK_LINT(B2 Evidence Spec 一等对象——kind=business_rule + payload.spec_kind=evidence_spec 判别;本文件是项目可编辑要求面,对应对象由 init 步骤 4.7 预植 SPEC.* store 对象(PROPOSED 起步,裁定批 D D2);本文件为该对象 requirements 的播种底稿,对象演进归项目运行时 applyTransaction)
|
|
5
|
+
- 语义锚:Project-Store PRD §13(Evidence Spec Kit)——要求面非证据面:持要求不持判定,判定值只在 Verification Result(claim 四态)/Gate Result(七态)。
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
本 Spec 定义「静态检查通过」这一证据的要求:项目登记的类型检查器与 linter 在变更面执行完成,零未处置的 error 级发现,规则集配置锚在座可溯。
|
|
10
|
+
|
|
11
|
+
## Subjects
|
|
12
|
+
|
|
13
|
+
- 变更触碰的代码文件及其类型依赖闭包(闭包口径以项目登记的检查范围为准)。
|
|
14
|
+
|
|
15
|
+
## Claims
|
|
16
|
+
|
|
17
|
+
- claim 词形:CLM-*(07 schema 词面);claim 由运行时 record 通路登记(UNVERIFIED 起步,声称方禁自填 VERIFIED)——本 Spec 只定义可立 claim 的语句类型,不产生判定值。
|
|
18
|
+
|
|
19
|
+
- 可立 claim 语句类型:「changed code passes typecheck and lint with zero unresolved error-level findings」类。
|
|
20
|
+
|
|
21
|
+
## Required Observations
|
|
22
|
+
|
|
23
|
+
- 类型检查命令退出码与发现清单(逐条:文件/位置/规则)。
|
|
24
|
+
|
|
25
|
+
- lint 命令退出码与发现清单(同上)。
|
|
26
|
+
|
|
27
|
+
- 规则集配置锚(配置文件路径+内容寻址引用),证明发现清单出自登记规则集。
|
|
28
|
+
|
|
29
|
+
## Allowed Producers
|
|
30
|
+
|
|
31
|
+
- 项目登记的类型检查器与 linter;发现清单必须出自工具原始输出,禁人工转述替代。
|
|
32
|
+
|
|
33
|
+
## Tool Bindings
|
|
34
|
+
|
|
35
|
+
- 类型检查器/linter 的具体工具与规则集由项目登记(配置锚在座);未登记工具的发现清单不具备资格。
|
|
36
|
+
|
|
37
|
+
## Assertions
|
|
38
|
+
|
|
39
|
+
- 判定资格总则:四值词形闭包(PASS/FAIL/UNKNOWN/NOT_RUN——PRD §13.1;禁发明第五值);判卷执行归 Verification Result(claim 四态)/Gate Result(七态),本文件不自填判定值。
|
|
40
|
+
|
|
41
|
+
- 资格判定:可满足本 Spec 条款的 claim/run 必须出自对象面 requirements 资格清单(claim_refs/gate_refs 在册;资格外一律不满足,跨对象借证=资格不成立——21-evidence-spec kind profile 词形)。
|
|
42
|
+
|
|
43
|
+
### PASS
|
|
44
|
+
|
|
45
|
+
- 资格:全部 Required Observations 在座且出自 Allowed Producers/Tool Bindings 资格面;Required Artifacts 齐备且可取回;要求条款逐条满足。
|
|
46
|
+
|
|
47
|
+
- 本 Spec 具体条款:两类命令退出码 0;发现清单为空,或每条发现都有例外登记(Exceptions 通道)。
|
|
48
|
+
|
|
49
|
+
- 判定值由 Verification Result / Gate Result 写——本文件不自填 PASS。
|
|
50
|
+
|
|
51
|
+
### FAIL
|
|
52
|
+
|
|
53
|
+
- 资格:任一必需要求不满足(观察缺席/出自资格外生产者/工件缺席或不可解析/claim_refs·gate_refs 清单外或跨对象借证)。
|
|
54
|
+
|
|
55
|
+
- 本 Spec 具体情形:任一 error 级发现无例外登记;配置锚缺席(发现不可溯源)。
|
|
56
|
+
|
|
57
|
+
### UNKNOWN
|
|
58
|
+
|
|
59
|
+
- 证据在座但不足以判定(receipt 维度不全/工件损坏/口径未登记)——诚实位,禁当 PASS 呈现;补证后重判。
|
|
60
|
+
|
|
61
|
+
### NOT_RUN
|
|
62
|
+
|
|
63
|
+
- 本证据类型未被产出(工具未执行/环境缺席)或范围显式不适用且例外已登记——显式缺席诚实位,禁把未跑写成 PASS/UNKNOWN。
|
|
64
|
+
|
|
65
|
+
## Required Artifacts
|
|
66
|
+
|
|
67
|
+
- 工具原始输出(逐字);例外登记引用。
|
|
68
|
+
|
|
69
|
+
## Retention
|
|
70
|
+
|
|
71
|
+
- 证据与 raw artifact 至少保留至对应 claim 关账;发布面证据按 baseline/platform/delivery.md 登记的保留策略;blob 面优先内容寻址(PRD §3.4)。
|
|
72
|
+
|
|
73
|
+
## Exceptions
|
|
74
|
+
|
|
75
|
+
- 逐发现登记豁免(理由+批准者+复核触发);批量豁免禁用。
|
|
76
|
+
|
|
77
|
+
## Activation Guidance
|
|
78
|
+
|
|
79
|
+
- 激活时点:每次代码变更提交前;CI 门禁放行前。
|
|
80
|
+
|
|
81
|
+
## Ownership
|
|
82
|
+
|
|
83
|
+
- 要求属主:项目 Owner(条款与例外裁决)。
|
|
84
|
+
|
|
85
|
+
- 证据生产:变更执行 lane 角色(Activation Guidance 所列时点);判定:Verification/Gate 通路——角色分离,生产者不得自判 PASS。
|
|
86
|
+
|
|
87
|
+
## Change Policy
|
|
88
|
+
|
|
89
|
+
- 本文件是项目可编辑要求面:条款修订走项目变更流程(CHANGE.* 登记);要求条款(必要性)修订需 Owner 确认,措辞/呈现类修订不受限。
|
|
90
|
+
|
|
91
|
+
- 阈值联动:数值阈值只住 baseline/quality 登记(§13.2「阈值必须项目化」);本文件修订只改要求条款,不改阈值数字。
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Evidence Spec — 单元/组件/集成测试
|
|
2
|
+
|
|
3
|
+
- 路径:specs/evidence/unit-component-integration.md
|
|
4
|
+
- 对象面词形:SPEC.UNIT_COMPONENT_INTEGRATION(B2 Evidence Spec 一等对象——kind=business_rule + payload.spec_kind=evidence_spec 判别;本文件是项目可编辑要求面,对应对象由 init 步骤 4.7 预植 SPEC.* store 对象(PROPOSED 起步,裁定批 D D2);本文件为该对象 requirements 的播种底稿,对象演进归项目运行时 applyTransaction)
|
|
5
|
+
- 语义锚:Project-Store PRD §13(Evidence Spec Kit)——要求面非证据面:持要求不持判定,判定值只在 Verification Result(claim 四态)/Gate Result(七态)。
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
本 Spec 定义「测试通过且范围充分」这一证据的要求:单元/组件/集成三层测试按登记命令执行,结果计数与失败清单可溯,执行范围覆盖变更面。
|
|
10
|
+
|
|
11
|
+
## Subjects
|
|
12
|
+
|
|
13
|
+
- 变更触碰的代码及其直接协作面(范围口径以 baseline/quality 登记为准)。
|
|
14
|
+
|
|
15
|
+
## Claims
|
|
16
|
+
|
|
17
|
+
- claim 词形:CLM-*(07 schema 词面);claim 由运行时 record 通路登记(UNVERIFIED 起步,声称方禁自填 VERIFIED)——本 Spec 只定义可立 claim 的语句类型,不产生判定值。
|
|
18
|
+
|
|
19
|
+
- 可立 claim 语句类型:「changed code is sufficiently test protected」类(PRD §3.2 例文同族)。
|
|
20
|
+
|
|
21
|
+
## Required Observations
|
|
22
|
+
|
|
23
|
+
- 测试命令(与登记一致)与退出码;用例计数(total/passed/failed/skipped)。
|
|
24
|
+
|
|
25
|
+
- 失败与跳过清单(逐条:用例+理由);随机种子(如适用,保复现)。
|
|
26
|
+
|
|
27
|
+
- 执行范围声明(三层各自覆盖的变更面)。
|
|
28
|
+
|
|
29
|
+
## Allowed Producers
|
|
30
|
+
|
|
31
|
+
- 项目登记的测试 runner 执行;计数必须出自 runner 原始报告,禁手写计数。
|
|
32
|
+
|
|
33
|
+
## Tool Bindings
|
|
34
|
+
|
|
35
|
+
- 测试 runner 由项目登记(PRD §2.8 词形池:Vitest 等);未登记 runner 的结果不具备资格。
|
|
36
|
+
|
|
37
|
+
## Assertions
|
|
38
|
+
|
|
39
|
+
- 判定资格总则:四值词形闭包(PASS/FAIL/UNKNOWN/NOT_RUN——PRD §13.1;禁发明第五值);判卷执行归 Verification Result(claim 四态)/Gate Result(七态),本文件不自填判定值。
|
|
40
|
+
|
|
41
|
+
- 资格判定:可满足本 Spec 条款的 claim/run 必须出自对象面 requirements 资格清单(claim_refs/gate_refs 在册;资格外一律不满足,跨对象借证=资格不成立——21-evidence-spec kind profile 词形)。
|
|
42
|
+
|
|
43
|
+
### PASS
|
|
44
|
+
|
|
45
|
+
- 资格:全部 Required Observations 在座且出自 Allowed Producers/Tool Bindings 资格面;Required Artifacts 齐备且可取回;要求条款逐条满足。
|
|
46
|
+
|
|
47
|
+
- 本 Spec 具体条款:全部在册命令退出码 0;failed=0;执行范围覆盖变更面(范围缺口逐条有例外登记)。
|
|
48
|
+
|
|
49
|
+
- 判定值由 Verification Result / Gate Result 写——本文件不自填 PASS。
|
|
50
|
+
|
|
51
|
+
### FAIL
|
|
52
|
+
|
|
53
|
+
- 资格:任一必需要求不满足(观察缺席/出自资格外生产者/工件缺席或不可解析/claim_refs·gate_refs 清单外或跨对象借证)。
|
|
54
|
+
|
|
55
|
+
- 本 Spec 具体情形:任一命令失败;范围缺口无例外;计数与原始报告不一致。
|
|
56
|
+
|
|
57
|
+
### UNKNOWN
|
|
58
|
+
|
|
59
|
+
- 证据在座但不足以判定(receipt 维度不全/工件损坏/口径未登记)——诚实位,禁当 PASS 呈现;补证后重判。
|
|
60
|
+
|
|
61
|
+
### NOT_RUN
|
|
62
|
+
|
|
63
|
+
- 本证据类型未被产出(工具未执行/环境缺席)或范围显式不适用且例外已登记——显式缺席诚实位,禁把未跑写成 PASS/UNKNOWN。
|
|
64
|
+
|
|
65
|
+
## Required Artifacts
|
|
66
|
+
|
|
67
|
+
- runner 原始报告(junit/json 形态);失败用例的诊断输出。
|
|
68
|
+
|
|
69
|
+
## Retention
|
|
70
|
+
|
|
71
|
+
- 证据与 raw artifact 至少保留至对应 claim 关账;发布面证据按 baseline/platform/delivery.md 登记的保留策略;blob 面优先内容寻址(PRD §3.4)。
|
|
72
|
+
|
|
73
|
+
## Exceptions
|
|
74
|
+
|
|
75
|
+
- skipped/范围缺口逐条登记(理由+补测触发);禁整层静默跳过。
|
|
76
|
+
|
|
77
|
+
## Activation Guidance
|
|
78
|
+
|
|
79
|
+
- 激活时点:每次代码变更提交前;CI 门禁放行前;重构前后对照。
|
|
80
|
+
|
|
81
|
+
## Ownership
|
|
82
|
+
|
|
83
|
+
- 要求属主:项目 Owner(条款与例外裁决)。
|
|
84
|
+
|
|
85
|
+
- 证据生产:变更执行 lane 角色(Activation Guidance 所列时点);判定:Verification/Gate 通路——角色分离,生产者不得自判 PASS。
|
|
86
|
+
|
|
87
|
+
## Change Policy
|
|
88
|
+
|
|
89
|
+
- 本文件是项目可编辑要求面:条款修订走项目变更流程(CHANGE.* 登记);要求条款(必要性)修订需 Owner 确认,措辞/呈现类修订不受限。
|
|
90
|
+
|
|
91
|
+
- 阈值联动:数值阈值只住 baseline/quality 登记(§13.2「阈值必须项目化」);本文件修订只改要求条款,不改阈值数字。
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Evidence Spec — 视觉回归
|
|
2
|
+
|
|
3
|
+
- 路径:specs/evidence/visual-regression.md
|
|
4
|
+
- 对象面词形:SPEC.VISUAL_REGRESSION(B2 Evidence Spec 一等对象——kind=business_rule + payload.spec_kind=evidence_spec 判别;本文件是项目可编辑要求面,对应对象由 init 步骤 4.7 预植 SPEC.* store 对象(PROPOSED 起步,裁定批 D D2);本文件为该对象 requirements 的播种底稿,对象演进归项目运行时 applyTransaction)
|
|
5
|
+
- 语义锚:Project-Store PRD §13(Evidence Spec Kit)——要求面非证据面:持要求不持判定,判定值只在 Verification Result(claim 四态)/Gate Result(七态)。
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
本 Spec 定义「视觉呈现未发生意外漂移」这一证据的要求:渲染快照与基准逐 viewport 对比,diff 清单逐条判定(有意变更登记/意外漂移)。
|
|
10
|
+
|
|
11
|
+
## Subjects
|
|
12
|
+
|
|
13
|
+
- 变更触碰页面与其关键状态(状态集合由项目登记)。
|
|
14
|
+
|
|
15
|
+
## Claims
|
|
16
|
+
|
|
17
|
+
- claim 词形:CLM-*(07 schema 词面);claim 由运行时 record 通路登记(UNVERIFIED 起步,声称方禁自填 VERIFIED)——本 Spec 只定义可立 claim 的语句类型,不产生判定值。
|
|
18
|
+
|
|
19
|
+
- 可立 claim 语句类型:「visual diffs are limited to the registered intended changes」类。
|
|
20
|
+
|
|
21
|
+
## Required Observations
|
|
22
|
+
|
|
23
|
+
- 快照集(逐 viewport)与基准版本锚;diff 清单(逐条:页面/状态/viewport/差异度)。
|
|
24
|
+
|
|
25
|
+
- diff 判定(有意变更登记引用/意外漂移)。
|
|
26
|
+
|
|
27
|
+
## Allowed Producers
|
|
28
|
+
|
|
29
|
+
- 项目登记的快照对比执行;基准更新必须走登记通路,禁就地改基准消 diff。
|
|
30
|
+
|
|
31
|
+
## Tool Bindings
|
|
32
|
+
|
|
33
|
+
- 快照/对比工具由项目登记(可与 SPEC.BROWSER_E2E 同链路);基准存储位置与版本锚登记在座。
|
|
34
|
+
|
|
35
|
+
## Assertions
|
|
36
|
+
|
|
37
|
+
- 判定资格总则:四值词形闭包(PASS/FAIL/UNKNOWN/NOT_RUN——PRD §13.1;禁发明第五值);判卷执行归 Verification Result(claim 四态)/Gate Result(七态),本文件不自填判定值。
|
|
38
|
+
|
|
39
|
+
- 资格判定:可满足本 Spec 条款的 claim/run 必须出自对象面 requirements 资格清单(claim_refs/gate_refs 在册;资格外一律不满足,跨对象借证=资格不成立——21-evidence-spec kind profile 词形)。
|
|
40
|
+
|
|
41
|
+
### PASS
|
|
42
|
+
|
|
43
|
+
- 资格:全部 Required Observations 在座且出自 Allowed Producers/Tool Bindings 资格面;Required Artifacts 齐备且可取回;要求条款逐条满足。
|
|
44
|
+
|
|
45
|
+
- 本 Spec 具体条款:diff 全部属于已登记的有意变更,或 diff 为零。
|
|
46
|
+
|
|
47
|
+
- 判定值由 Verification Result / Gate Result 写——本文件不自填 PASS。
|
|
48
|
+
|
|
49
|
+
### FAIL
|
|
50
|
+
|
|
51
|
+
- 资格:任一必需要求不满足(观察缺席/出自资格外生产者/工件缺席或不可解析/claim_refs·gate_refs 清单外或跨对象借证)。
|
|
52
|
+
|
|
53
|
+
- 本 Spec 具体情形:意外漂移未处置;基准版本锚缺席。
|
|
54
|
+
|
|
55
|
+
### UNKNOWN
|
|
56
|
+
|
|
57
|
+
- 证据在座但不足以判定(receipt 维度不全/工件损坏/口径未登记)——诚实位,禁当 PASS 呈现;补证后重判。
|
|
58
|
+
|
|
59
|
+
### NOT_RUN
|
|
60
|
+
|
|
61
|
+
- 本证据类型未被产出(工具未执行/环境缺席)或范围显式不适用且例外已登记——显式缺席诚实位,禁把未跑写成 PASS/UNKNOWN。
|
|
62
|
+
|
|
63
|
+
## Required Artifacts
|
|
64
|
+
|
|
65
|
+
- 前后快照与 diff 图(blob,内容寻址);有意变更登记引用。
|
|
66
|
+
|
|
67
|
+
## Retention
|
|
68
|
+
|
|
69
|
+
- 证据与 raw artifact 至少保留至对应 claim 关账;发布面证据按 baseline/platform/delivery.md 登记的保留策略;blob 面优先内容寻址(PRD §3.4)。
|
|
70
|
+
|
|
71
|
+
## Exceptions
|
|
72
|
+
|
|
73
|
+
- 动态区域掩码逐条登记(理由+范围);禁全页掩码。
|
|
74
|
+
|
|
75
|
+
## Activation Guidance
|
|
76
|
+
|
|
77
|
+
- 激活时点:样式/布局/组件视觉面变更;发布前。
|
|
78
|
+
|
|
79
|
+
## Ownership
|
|
80
|
+
|
|
81
|
+
- 要求属主:项目 Owner(条款与例外裁决)。
|
|
82
|
+
|
|
83
|
+
- 证据生产:变更执行 lane 角色(Activation Guidance 所列时点);判定:Verification/Gate 通路——角色分离,生产者不得自判 PASS。
|
|
84
|
+
|
|
85
|
+
## Change Policy
|
|
86
|
+
|
|
87
|
+
- 本文件是项目可编辑要求面:条款修订走项目变更流程(CHANGE.* 登记);要求条款(必要性)修订需 Owner 确认,措辞/呈现类修订不受限。
|
|
88
|
+
|
|
89
|
+
- 阈值联动:数值阈值只住 baseline/quality 登记(§13.2「阈值必须项目化」);本文件修订只改要求条款,不改阈值数字。
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
seed_source: pomaster/components/backend-hard-spec/assets/universal/01-architecture-governance-protocol.md
|
|
3
|
+
seed_source_sha256: 726502f4e5a5dcf2e8076fafa943b33de4b7ab9bd0fc2d8551479b43385e7636
|
|
4
|
+
seed_version: B6C
|
|
5
|
+
lane: backend
|
|
6
|
+
status: CURRENT
|
|
7
|
+
authority_scope: mixed_required_and_advisory
|
|
8
|
+
applies_to: [backend]
|
|
9
|
+
related_evidence_specs: []
|
|
10
|
+
related_tools: []
|
|
11
|
+
legacy_id: backend:architecture-governance-protocol
|
|
12
|
+
criticality: critical
|
|
13
|
+
injection_mode: reference
|
|
14
|
+
stages: [prepare, check]
|
|
15
|
+
triggers: [architecture, technology-baseline, deployment-topology]
|
|
16
|
+
requires: []
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# 架构治理协议
|
|
20
|
+
|
|
21
|
+
## Scope
|
|
22
|
+
|
|
23
|
+
规范系统边界、架构层级、技术决策、ADR 与演进门禁。
|
|
24
|
+
|
|
25
|
+
## Non-Scope
|
|
26
|
+
|
|
27
|
+
不规定具体项目的模块名、部署数量或技术版本。
|
|
28
|
+
|
|
29
|
+
## Terms
|
|
30
|
+
|
|
31
|
+
架构决策指影响边界、数据所有权、部署单元或公共契约的长期选择。
|
|
32
|
+
|
|
33
|
+
## MUST
|
|
34
|
+
|
|
35
|
+
- 架构选择必须记录候选、取舍、风险、ADR 坐标和复审条件。
|
|
36
|
+
|
|
37
|
+
## MUST NOT
|
|
38
|
+
|
|
39
|
+
- 不得以局部代码便利替代边界、数据所有权或部署约束分析。
|
|
40
|
+
|
|
41
|
+
## SHOULD
|
|
42
|
+
|
|
43
|
+
- 应优先选择能由现有团队、工具和运行证据持续验证的方案。
|
|
44
|
+
|
|
45
|
+
## Contract
|
|
46
|
+
|
|
47
|
+
架构记录至少输出稳定决策 ID、适用范围、被放弃方案、依赖与验证方式。
|
|
48
|
+
|
|
49
|
+
## Checklist
|
|
50
|
+
|
|
51
|
+
- [ ] 边界、依赖方向、部署单元和数据所有权已明确。
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
|
|
55
|
+
- 将单体与服务拆分作为候选比较,并记录选择理由和复审触发条件。
|
|
56
|
+
|
|
57
|
+
## Anti-patterns
|
|
58
|
+
|
|
59
|
+
- 只画理想架构图,不绑定构建产物、部署单元或实际依赖。
|
|
60
|
+
|
|
61
|
+
## Ownership
|
|
62
|
+
|
|
63
|
+
后端技术负责人维护决策,模块维护者提供实现与运行证据。
|
|
64
|
+
|
|
65
|
+
## Change Policy
|
|
66
|
+
|
|
67
|
+
改变已采用架构必须新增或替代 ADR,不得静默改写历史结论。
|
|
68
|
+
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
seed_source: pomaster/components/backend-hard-spec/assets/universal/02-project-structure-governance-protocol.md
|
|
3
|
+
seed_source_sha256: add6e21ffa5dd45940dda725e8d4e234c9d2a49775139c895cc7ad5f7caf7bf0
|
|
4
|
+
seed_version: B6C
|
|
5
|
+
lane: backend
|
|
6
|
+
status: CURRENT
|
|
7
|
+
authority_scope: mixed_required_and_advisory
|
|
8
|
+
applies_to: [backend]
|
|
9
|
+
related_evidence_specs: []
|
|
10
|
+
related_tools: []
|
|
11
|
+
legacy_id: backend:project-structure-governance-protocol
|
|
12
|
+
criticality: standard
|
|
13
|
+
injection_mode: triggered
|
|
14
|
+
stages: [prepare, implement, check]
|
|
15
|
+
triggers: [project-structure, module-layout]
|
|
16
|
+
requires: []
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# 项目结构治理协议
|
|
20
|
+
|
|
21
|
+
## Scope
|
|
22
|
+
|
|
23
|
+
规范消费项目的后端目录分区、模块入口和结构检查。
|
|
24
|
+
|
|
25
|
+
## Non-Scope
|
|
26
|
+
|
|
27
|
+
不强制所有语言和框架采用同一目录树。
|
|
28
|
+
|
|
29
|
+
## Terms
|
|
30
|
+
|
|
31
|
+
公开入口是其他模块被允许依赖的稳定包、接口或构建产物。
|
|
32
|
+
|
|
33
|
+
## MUST
|
|
34
|
+
|
|
35
|
+
- 新目录和模块必须有单一职责、公开入口和明确依赖方向。
|
|
36
|
+
|
|
37
|
+
## MUST NOT
|
|
38
|
+
|
|
39
|
+
- 不得创建无法解释职责的顶层目录或把业务代码放入通用工具区。
|
|
40
|
+
|
|
41
|
+
## SHOULD
|
|
42
|
+
|
|
43
|
+
- 应沿用仓库已验证的结构模式,并在新增结构前搜索现有实现。
|
|
44
|
+
|
|
45
|
+
## Contract
|
|
46
|
+
|
|
47
|
+
结构变更必须给出目标路径、所有者、入口、消费者和迁移计划。
|
|
48
|
+
|
|
49
|
+
## Checklist
|
|
50
|
+
|
|
51
|
+
- [ ] 已搜索同类模块并检查构建、测试和部署发现路径。
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
|
|
55
|
+
- 为独立领域建立模块,并通过公开接口而不是内部包提供能力。
|
|
56
|
+
|
|
57
|
+
## Anti-patterns
|
|
58
|
+
|
|
59
|
+
- 复制相似模块后仅改名,造成规则和修复长期漂移。
|
|
60
|
+
|
|
61
|
+
## Ownership
|
|
62
|
+
|
|
63
|
+
模块所有者维护结构,评审者检查跨模块依赖和重复实现。
|
|
64
|
+
|
|
65
|
+
## Change Policy
|
|
66
|
+
|
|
67
|
+
目录迁移必须同步引用、构建、测试、文档和兼容入口。
|
|
68
|
+
|