pomaster 0.3.0 → 0.5.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 +57 -22
- 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 +95 -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 +95 -0
- package/catalog/policies/policy.sec.third_party_execution_register.json +2 -1
- package/catalog/policies/policy.sec.trust_boundary_enforcement.json +96 -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 +20514 -10735
- package/package.json +2 -1
- package/seeds/aggregation-manifest.json +691 -0
- 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 +1429 -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/stacks/antdesign/antdesign-ui-overlay.md +48 -0
- package/seeds/specs/hard/stacks/antdesign/index.md +20 -0
- package/seeds/specs/hard/stacks/css/css-system-overlay.md +52 -0
- package/seeds/specs/hard/stacks/css/index.md +20 -0
- package/seeds/specs/hard/stacks/geist/geist-design-system-overlay.md +48 -0
- package/seeds/specs/hard/stacks/geist/index.md +20 -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
- package/seeds/specs/hard/stacks/vue3/index.md +20 -0
- package/seeds/specs/hard/stacks/vue3/vue3-framework-overlay.md +71 -0
- package/seeds/specs/hard/themes/ai-generated-code.md +171 -0
- package/seeds/specs/hard/themes/api-contract-and-error-semantics.md +532 -0
- package/seeds/specs/hard/themes/architecture-and-module-boundaries.md +323 -0
- package/seeds/specs/hard/themes/data-and-transactions.md +582 -0
- package/seeds/specs/hard/themes/engineering-toolchain-and-dependencies.md +333 -0
- package/seeds/specs/hard/themes/environment-and-configuration.md +196 -0
- package/seeds/specs/hard/themes/frontend-state-and-client-data.md +342 -0
- package/seeds/specs/hard/themes/index.md +374 -0
- package/seeds/specs/hard/themes/integration-and-async-runtime.md +331 -0
- package/seeds/specs/hard/themes/internationalization-and-copywriting.md +350 -0
- package/seeds/specs/hard/themes/observability-and-analytics.md +305 -0
- package/seeds/specs/hard/themes/page-composition-and-browser-environment.md +554 -0
- package/seeds/specs/hard/themes/performance-and-capacity.md +226 -0
- package/seeds/specs/hard/themes/permission-and-authorization.md +168 -0
- package/seeds/specs/hard/themes/privacy-and-data-lifecycle.md +176 -0
- package/seeds/specs/hard/themes/release-and-feature-flags.md +237 -0
- package/seeds/specs/hard/themes/security.md +372 -0
- package/seeds/specs/hard/themes/task-governance-and-acceptance.md +554 -0
- package/seeds/specs/hard/themes/testing-and-verification.md +266 -0
- package/seeds/specs/hard/themes/ui-presentation-and-design.md +670 -0
- package/seeds/specs/hard/themes/value-semantics-and-domain-data.md +339 -0
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
---
|
|
2
|
+
seed_source: packages/cli/seeds/aggregation-manifest.json
|
|
3
|
+
seed_source_sha256: 039b637ccffacdfe3ce30d85e193f4b38928fcdfb16efdc4eb255e35e05af91f
|
|
4
|
+
seed_version: B7-THEME
|
|
5
|
+
lane: [frontend, backend]
|
|
6
|
+
status: CURRENT
|
|
7
|
+
authority_scope: mixed_required_and_advisory
|
|
8
|
+
applies_to: [frontend, backend]
|
|
9
|
+
related_evidence_specs: []
|
|
10
|
+
related_tools: []
|
|
11
|
+
legacy_id: theme:engineering-toolchain-and-dependencies
|
|
12
|
+
criticality: critical # 聚合注记:取源最高;info 性注记非执行语义
|
|
13
|
+
injection_mode: triggered # 聚合注记:来源同值;info 性注记非执行语义
|
|
14
|
+
stages: [prepare, implement, check, release] # 聚合注记:来源 stages 并集;info 性注记非执行语义
|
|
15
|
+
triggers: [build, tooling, ci, dependency, supply-chain] # 聚合注记:来源 triggers 并集;info 性注记非执行语义
|
|
16
|
+
requires: [] # 聚合注记:来源 requires 并集(全空)
|
|
17
|
+
x-aggregation: # 聚合来源(D6):逐源 vendor pin(sha256 与卡 vendor_pin 同值)
|
|
18
|
+
- seed_source: pomaster/components/frontend-hard-spec/assets/universal/10-engineering-tooling-protocol.md
|
|
19
|
+
sha256: c628d47dcae1ddd58ea3651eeae9dd84ff5157365a3892a367bd7b5bf0af2b9d
|
|
20
|
+
seed_version: B6B-1
|
|
21
|
+
- seed_source: pomaster/components/frontend-hard-spec/assets/universal/11-dependency-package-management-protocol.md
|
|
22
|
+
sha256: a0cc135edaf0dfd1f5122d2ff7298866143ef3a273ad4d45f5e1eff763691867
|
|
23
|
+
seed_version: B6B-1
|
|
24
|
+
- seed_source: pomaster/components/backend-hard-spec/assets/universal/26-engineering-tooling-protocol.md
|
|
25
|
+
sha256: b0fcecee17a3acdb11f59f065ae7cac269cc292e999dd39444e5293565d38fe1
|
|
26
|
+
seed_version: B6C
|
|
27
|
+
- seed_source: pomaster/components/backend-hard-spec/assets/universal/27-dependency-supply-chain-protocol.md
|
|
28
|
+
sha256: 7e0817507039ab5f633ff4cb7eb3590d8755a547b8db91867f92bc702a64ddfe
|
|
29
|
+
seed_version: B6C
|
|
30
|
+
x-language-sections: # 语言节同步源(R-J 资产层唯一权威;注入面为同步副本)
|
|
31
|
+
- overlay: pomaster/components/backend-hard-spec/assets/stacks/java/java-language-overlay.md
|
|
32
|
+
sha256: 38b592a5beaa899abb45e871e5097cafedeea80502baee00bcfbfcfa313dab85
|
|
33
|
+
attach: primary
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
# 工程工具链与依赖
|
|
37
|
+
|
|
38
|
+
> **聚合纪律**:本文档 12 节正文规则行逐字取自 frontmatter x-aggregation 所列来源协议(节内按「端 → 源编号升序」以加粗来源行分块,源内标题与层级原样保留),零新增、零改写、零删除;新增文本仅限文档标题、本注记与逐节来源行。
|
|
39
|
+
文末「语言与栈节」为 stacks overlay 资产 Scope/Rules/Checklist 的逐字节同步副本(标题降 2 级,正文零改动)——资产层为唯一权威,改规则只改 overlay、本区随同步。
|
|
40
|
+
|
|
41
|
+
## Scope
|
|
42
|
+
|
|
43
|
+
**源:FE 10 工程工具协议(pomaster/components/frontend-hard-spec/assets/universal/10-engineering-tooling-protocol.md)**
|
|
44
|
+
|
|
45
|
+
P0。用类型、格式、Lint、契约、测试、示例、CI 和 ADR 固化团队协议。
|
|
46
|
+
|
|
47
|
+
**源:FE 11 依赖与包管理协议(pomaster/components/frontend-hard-spec/assets/universal/11-dependency-package-management-protocol.md)**
|
|
48
|
+
|
|
49
|
+
P1。管理包管理器、锁文件、依赖引入、版本、许可证、安全、升级和删除。
|
|
50
|
+
|
|
51
|
+
**源:BE 26 工程工具协议(pomaster/components/backend-hard-spec/assets/universal/26-engineering-tooling-protocol.md)**
|
|
52
|
+
|
|
53
|
+
规范构建、静态检查、生成产物、CI、版本固定、ADR 与可复现性。
|
|
54
|
+
|
|
55
|
+
**源:BE 27 依赖与供应链协议(pomaster/components/backend-hard-spec/assets/universal/27-dependency-supply-chain-protocol.md)**
|
|
56
|
+
|
|
57
|
+
规范依赖准入、版本、漏洞、许可证、来源、锁文件和构建供应链。
|
|
58
|
+
|
|
59
|
+
## Non-Scope
|
|
60
|
+
|
|
61
|
+
**源:FE 10 工程工具协议**
|
|
62
|
+
|
|
63
|
+
不强制所有项目使用同一框架或供应商工具,不替代依赖评审。
|
|
64
|
+
|
|
65
|
+
**源:FE 11 依赖与包管理协议**
|
|
66
|
+
|
|
67
|
+
不规定具体框架选型,不替代供应链扫描和法律审查。
|
|
68
|
+
|
|
69
|
+
**源:BE 26 工程工具协议**
|
|
70
|
+
|
|
71
|
+
不规定所有项目使用同一构建工具。
|
|
72
|
+
|
|
73
|
+
**源:BE 27 依赖与供应链协议**
|
|
74
|
+
|
|
75
|
+
不规定具体语言的包管理器命令。
|
|
76
|
+
|
|
77
|
+
## Terms
|
|
78
|
+
|
|
79
|
+
**源:FE 10 工程工具协议**
|
|
80
|
+
|
|
81
|
+
- Quality Command:本地与 CI 共用的标准检查入口。
|
|
82
|
+
- Generated Artifact:由可重复命令生成、禁止手改的文件。
|
|
83
|
+
- ADR:记录重要架构决策及后果的文档。
|
|
84
|
+
|
|
85
|
+
**源:FE 11 依赖与包管理协议**
|
|
86
|
+
|
|
87
|
+
- Runtime Dependency:进入生产运行路径的依赖。
|
|
88
|
+
- Development Dependency:仅构建、测试或开发使用。
|
|
89
|
+
- Dependency Budget:包体、维护、安全和替换成本预算。
|
|
90
|
+
|
|
91
|
+
**源:BE 26 工程工具协议**
|
|
92
|
+
|
|
93
|
+
可复现构建是从受控输入得到可核对产物的过程。
|
|
94
|
+
|
|
95
|
+
**源:BE 27 依赖与供应链协议**
|
|
96
|
+
|
|
97
|
+
直接依赖由项目显式声明,传递依赖由解析图间接引入。
|
|
98
|
+
|
|
99
|
+
## MUST
|
|
100
|
+
|
|
101
|
+
**源:FE 10 工程工具协议 · §MUST**
|
|
102
|
+
|
|
103
|
+
- 项目明确 TypeScript/类型、Lint、Format、样式、测试和构建工具。
|
|
104
|
+
- 本地与 CI 使用相同标准命令。
|
|
105
|
+
- 接口契约和生成物必须可重复生成和校验。
|
|
106
|
+
- 公共组件必须有可运行示例。
|
|
107
|
+
- 重要架构和工具决策必须记录 ADR/RFC。
|
|
108
|
+
- 工具违规必须产生明确失败而非仅提示。
|
|
109
|
+
- 运行时、包管理器和关键构建工具版本必须被仓库内机器可读配置固定,并由 CI 校验。
|
|
110
|
+
- TypeScript 项目必须启用与代码库兼容的严格类型检查;暂不能启用的严格选项必须有范围、Owner、迁移计划和期限。
|
|
111
|
+
- 外部数据必须先经运行时校验再进入可信类型;类型断言和非空断言不得替代边界验证。
|
|
112
|
+
- 配置必须有单一有效来源,废弃配置应移除或显式失效,避免多个配置文件竞争生效。
|
|
113
|
+
|
|
114
|
+
**源:FE 11 依赖与包管理协议 · §MUST**
|
|
115
|
+
|
|
116
|
+
- 固定包管理器、锁文件和受信 registry。
|
|
117
|
+
- 固定 runtime 与包管理器版本;仓库只能有一种生效锁文件,CI 使用 frozen/immutable 安装并在 manifest 与锁文件漂移时失败。
|
|
118
|
+
- 引入前检查现有能力、维护状态、许可证、安全、包体和替代方案。
|
|
119
|
+
- 依赖变更必须审查直接与传递依赖、完整性/来源、安装脚本、可执行代码、发布内容和锁文件差异。
|
|
120
|
+
- 正确区分 runtime/dev 并保证可重复安装。
|
|
121
|
+
- 升级审查 breaking changes、测试和回滚。
|
|
122
|
+
- 删除未使用依赖及其配置、适配和文档。
|
|
123
|
+
- 构建插件、CI action、代码生成器和远程脚本按供应链依赖治理;可变引用必须改为不可变版本或受控版本策略。
|
|
124
|
+
|
|
125
|
+
**源:BE 26 工程工具协议 · §MUST**
|
|
126
|
+
|
|
127
|
+
- 运行时、构建工具、依赖锁定和质量命令必须在仓库或受控环境中可发现。
|
|
128
|
+
|
|
129
|
+
**源:BE 27 依赖与供应链协议 · §MUST**
|
|
130
|
+
|
|
131
|
+
- 新增或升级依赖必须验证必要性、来源、版本、许可证、漏洞和维护状态。
|
|
132
|
+
|
|
133
|
+
## MUST NOT
|
|
134
|
+
|
|
135
|
+
**源:FE 10 工程工具协议 · §MUST NOT**
|
|
136
|
+
|
|
137
|
+
- MUST NOT 只靠口头约定格式、类型、接口和组件用法。
|
|
138
|
+
- MUST NOT 手改生成物。
|
|
139
|
+
- MUST NOT 为局部问题关闭全局规则。
|
|
140
|
+
- MUST NOT 让 CI 与本地使用不同质量标准。
|
|
141
|
+
- MUST NOT 依赖开发机全局安装的工具或隐式环境状态完成构建和检查。
|
|
142
|
+
- MUST NOT 用项目级忽略、`any`、类型断言或关闭规则掩盖局部问题;例外必须最小化并可追踪。
|
|
143
|
+
|
|
144
|
+
**源:FE 11 依赖与包管理协议 · §MUST NOT**
|
|
145
|
+
|
|
146
|
+
- MUST NOT 为简单函数引入大型库。
|
|
147
|
+
- MUST NOT 并存职责重复的核心库而无批准。
|
|
148
|
+
- MUST NOT 手改或绕过锁文件。
|
|
149
|
+
- MUST NOT 忽略高危漏洞和许可证冲突。
|
|
150
|
+
- MUST NOT 盲目执行依赖安装脚本、远程脚本或自动修复命令而不审查将执行和变更的内容。
|
|
151
|
+
- MUST NOT 只审查 `package.json` 而忽略锁文件、传递依赖和 CI/构建依赖变化。
|
|
152
|
+
|
|
153
|
+
**源:BE 26 工程工具协议 · §MUST NOT**
|
|
154
|
+
|
|
155
|
+
- 不得手工修改生成产物或让本地与 CI 使用不一致的门禁。
|
|
156
|
+
|
|
157
|
+
**源:BE 27 依赖与供应链协议 · §MUST NOT**
|
|
158
|
+
|
|
159
|
+
- 不得从不可信源下载执行代码或忽略锁文件与校验差异。
|
|
160
|
+
|
|
161
|
+
## SHOULD
|
|
162
|
+
|
|
163
|
+
**源:FE 10 工程工具协议 · §SHOULD**
|
|
164
|
+
|
|
165
|
+
- SHOULD 自动检测依赖边界、契约漂移、包体、可访问性和视觉回归。
|
|
166
|
+
- SHOULD 提供一条命令执行常规质量门禁。
|
|
167
|
+
|
|
168
|
+
**源:FE 11 依赖与包管理协议 · §SHOULD**
|
|
169
|
+
|
|
170
|
+
- SHOULD 选择维护活跃、tree-shakable、类型完整的依赖。
|
|
171
|
+
- SHOULD 通过 adapter 隔离高替换成本 API。
|
|
172
|
+
- SHOULD 自动执行依赖差异、安全、许可证和来源审查;发布包时生成可验证 provenance/SBOM,并检查发布内容不含凭据、测试身份或私有 source map。
|
|
173
|
+
|
|
174
|
+
**源:BE 26 工程工具协议 · §SHOULD**
|
|
175
|
+
|
|
176
|
+
- 应自动校验生成代码、契约、migration、依赖和容器配置漂移。
|
|
177
|
+
|
|
178
|
+
**源:BE 27 依赖与供应链协议 · §SHOULD**
|
|
179
|
+
|
|
180
|
+
- 应减少重复能力、限制依赖范围并生成可追溯物料清单。
|
|
181
|
+
|
|
182
|
+
## Contract
|
|
183
|
+
|
|
184
|
+
**源:FE 10 工程工具协议 · §Contract**
|
|
185
|
+
|
|
186
|
+
```text
|
|
187
|
+
Tool, Purpose, VersionPolicy, Command,
|
|
188
|
+
Inputs, Outputs, FailureCondition, Owner
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**源:FE 11 依赖与包管理协议 · §Contract**
|
|
192
|
+
|
|
193
|
+
```text
|
|
194
|
+
Package, Purpose, AlternativesChecked, RuntimeOrDev,
|
|
195
|
+
VersionPolicy, LockfileImpact, TransitiveDiff, Integrity, Provenance,
|
|
196
|
+
InstallScripts, BundleImpact, License, Security, Owner, RemovalPlan
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**源:BE 26 工程工具协议 · §Contract**
|
|
200
|
+
|
|
201
|
+
工具链记录必须包含版本来源、入口命令、输入、输出和失败门禁。
|
|
202
|
+
|
|
203
|
+
**源:BE 27 依赖与供应链协议 · §Contract**
|
|
204
|
+
|
|
205
|
+
依赖变更必须记录原因、影响图、风险、测试、生成差异和回退。
|
|
206
|
+
|
|
207
|
+
## Checklist
|
|
208
|
+
|
|
209
|
+
**源:FE 10 工程工具协议 · §Checklist**
|
|
210
|
+
|
|
211
|
+
- [ ] 工具和命令明确。
|
|
212
|
+
- [ ] CI 可自动发现违规。
|
|
213
|
+
- [ ] 生成过程可重复。
|
|
214
|
+
- [ ] 公共组件有示例。
|
|
215
|
+
- [ ] 重要决策有记录。
|
|
216
|
+
- [ ] 运行时和工具版本可复现,未依赖全局安装。
|
|
217
|
+
- [ ] 类型严格度和例外有边界、Owner 与迁移计划。
|
|
218
|
+
|
|
219
|
+
**源:FE 11 依赖与包管理协议 · §Checklist**
|
|
220
|
+
|
|
221
|
+
- [ ] 新增必要性已证明。
|
|
222
|
+
- [ ] 安全、许可、维护、包体已评估。
|
|
223
|
+
- [ ] 安装可重复。
|
|
224
|
+
- [ ] 有升级和移除策略。
|
|
225
|
+
- [ ] 传递依赖、安装脚本和构建/CI 依赖已审查。
|
|
226
|
+
|
|
227
|
+
**源:BE 26 工程工具协议 · §Checklist**
|
|
228
|
+
|
|
229
|
+
- [ ] 干净环境可完成构建、测试和静态检查。
|
|
230
|
+
|
|
231
|
+
**源:BE 27 依赖与供应链协议 · §Checklist**
|
|
232
|
+
|
|
233
|
+
- [ ] 直接与传递依赖、插件、镜像和构建脚本均已审计。
|
|
234
|
+
|
|
235
|
+
## Examples
|
|
236
|
+
|
|
237
|
+
**源:FE 10 工程工具协议 · §Examples**
|
|
238
|
+
|
|
239
|
+
### 内容示例,可删除
|
|
240
|
+
|
|
241
|
+
类型、lint、单测和构建通过统一脚本运行,CI 直接调用相同脚本。
|
|
242
|
+
|
|
243
|
+
**源:FE 11 依赖与包管理协议 · §Examples**
|
|
244
|
+
|
|
245
|
+
### 内容示例,可删除
|
|
246
|
+
|
|
247
|
+
引入表格引擎前比较现有组件、许可证、虚拟滚动、可访问性和长期维护,并通过 adapter 隔离。
|
|
248
|
+
|
|
249
|
+
**源:BE 26 工程工具协议 · §Examples**
|
|
250
|
+
|
|
251
|
+
- CI 重新生成 OpenAPI 产物并拒绝未提交差异。
|
|
252
|
+
|
|
253
|
+
**源:BE 27 依赖与供应链协议 · §Examples**
|
|
254
|
+
|
|
255
|
+
- 安全升级同时验证 API 兼容、配置变化和运行回归。
|
|
256
|
+
|
|
257
|
+
## Anti-patterns
|
|
258
|
+
|
|
259
|
+
**源:FE 10 工程工具协议 · §Anti-patterns**
|
|
260
|
+
|
|
261
|
+
开发者本地忽略类型错误,CI 又没有 typecheck,问题直到上线构建才暴露。
|
|
262
|
+
|
|
263
|
+
**源:FE 11 依赖与包管理协议 · §Anti-patterns**
|
|
264
|
+
|
|
265
|
+
多个页面分别引入不同日期库,只为格式化日期,造成包体和时区行为不一致。
|
|
266
|
+
|
|
267
|
+
**源:BE 26 工程工具协议 · §Anti-patterns**
|
|
268
|
+
|
|
269
|
+
- 依赖开发机全局工具或未记录的 IDE 操作。
|
|
270
|
+
|
|
271
|
+
**源:BE 27 依赖与供应链协议 · §Anti-patterns**
|
|
272
|
+
|
|
273
|
+
- 为一个简单函数引入高权限且维护不明的大型依赖。
|
|
274
|
+
|
|
275
|
+
## Ownership
|
|
276
|
+
|
|
277
|
+
**源:FE 10 工程工具协议 · §Ownership**
|
|
278
|
+
|
|
279
|
+
工程 Owner 维护工具链,模块 Owner 修复违规,CI Owner 保证门禁可靠。
|
|
280
|
+
|
|
281
|
+
**源:FE 11 依赖与包管理协议 · §Ownership**
|
|
282
|
+
|
|
283
|
+
工程 Owner 维护策略,模块 Owner 负责新增,安全/法务裁决风险。
|
|
284
|
+
|
|
285
|
+
**源:BE 26 工程工具协议 · §Ownership**
|
|
286
|
+
|
|
287
|
+
平台维护者维护工具链,模块维护者确保项目命令持续可运行。
|
|
288
|
+
|
|
289
|
+
**源:BE 27 依赖与供应链协议 · §Ownership**
|
|
290
|
+
|
|
291
|
+
依赖引入者负责评审,安全与平台角色维护阻断策略。
|
|
292
|
+
|
|
293
|
+
## Change Policy
|
|
294
|
+
|
|
295
|
+
**源:FE 10 工程工具协议 · §Change Policy**
|
|
296
|
+
|
|
297
|
+
工具新增、替换或规则放宽必须评估迁移、性能和开发体验,并提供版本化配置。
|
|
298
|
+
|
|
299
|
+
**源:FE 11 依赖与包管理协议 · §Change Policy**
|
|
300
|
+
|
|
301
|
+
新增或主版本升级需要评审记录;紧急安全升级可加速但必须补测试。
|
|
302
|
+
|
|
303
|
+
**源:BE 26 工程工具协议 · §Change Policy**
|
|
304
|
+
|
|
305
|
+
工具升级必须验证兼容、锁文件、生成差异和回退。
|
|
306
|
+
|
|
307
|
+
**源:BE 27 依赖与供应链协议 · §Change Policy**
|
|
308
|
+
|
|
309
|
+
紧急漏洞例外必须限时、可追踪并安排后续完整验证。
|
|
310
|
+
|
|
311
|
+
## 语言与栈节(overlay 资产同步区)
|
|
312
|
+
|
|
313
|
+
> 本区各小节 = stacks/ overlay 资产 Scope/Rules/Checklist 的**逐字节同步副本**(标题降 2 级,正文零改动)。资产层(overlay 文件,catalog 在册、research 锚、bound 语义挂点)为唯一权威;本区为注入面副本,改规则只改 overlay、本区随同步。x-research-anchors 留在 overlay 资产 frontmatter,不复制进本主题文档(防双锚漂移)。
|
|
314
|
+
|
|
315
|
+
### java(源:stacks/java/java-language-overlay.md · T05 主挂点)
|
|
316
|
+
|
|
317
|
+
#### Scope
|
|
318
|
+
|
|
319
|
+
本 Overlay 具体化 Java 源码、构建、JDK 与 JVM 兼容边界。
|
|
320
|
+
|
|
321
|
+
#### Rules
|
|
322
|
+
|
|
323
|
+
- 必须固定并记录 JDK、编译目标、构建工具和依赖解析来源。
|
|
324
|
+
- 不得由 Java 选择推断 Spring Boot、数据库、Redis、Nginx 或 Tomcat。
|
|
325
|
+
- 语言升级必须验证字节码、运行时、测试与部署环境兼容性。
|
|
326
|
+
|
|
327
|
+
#### Checklist
|
|
328
|
+
|
|
329
|
+
- [ ] 版本来源、构建命令和 CI 运行时可复现。
|
|
330
|
+
- [ ] 项目技术基线记录实际 JDK 与打包方式。
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
> **缺席诚实**:php / python(后端语言)无 overlay 资产,不落语言节。
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
---
|
|
2
|
+
seed_source: packages/cli/seeds/aggregation-manifest.json
|
|
3
|
+
seed_source_sha256: 039b637ccffacdfe3ce30d85e193f4b38928fcdfb16efdc4eb255e35e05af91f
|
|
4
|
+
seed_version: B7-THEME
|
|
5
|
+
lane: [frontend, backend]
|
|
6
|
+
status: CURRENT
|
|
7
|
+
authority_scope: mixed_required_and_advisory
|
|
8
|
+
applies_to: [frontend, backend]
|
|
9
|
+
related_evidence_specs: []
|
|
10
|
+
related_tools: []
|
|
11
|
+
legacy_id: theme:environment-and-configuration
|
|
12
|
+
criticality: critical # 聚合注记:取源最高;info 性注记非执行语义
|
|
13
|
+
injection_mode: triggered # 聚合注记:来源同值;info 性注记非执行语义
|
|
14
|
+
stages: [prepare, implement, check, release] # 聚合注记:来源 stages 并集;info 性注记非执行语义
|
|
15
|
+
triggers: [environment-configuration, configuration, secrets, runtime] # 聚合注记:来源 triggers 并集;info 性注记非执行语义
|
|
16
|
+
requires: [] # 聚合注记:来源 requires 并集(全空)
|
|
17
|
+
x-aggregation: # 聚合来源(D6):逐源 vendor pin(sha256 与卡 vendor_pin 同值)
|
|
18
|
+
- seed_source: pomaster/components/frontend-hard-spec/assets/universal/05-environment-configuration-protocol.md
|
|
19
|
+
sha256: 3affc23c84d64d10c8911b84bd9db82a34fcb9b675f7365672d554ecf34c8fb6
|
|
20
|
+
seed_version: B6B-1
|
|
21
|
+
- seed_source: pomaster/components/backend-hard-spec/assets/universal/11-environment-configuration-protocol.md
|
|
22
|
+
sha256: eb9e82e9df64ce238501bc51cd359f36150f911c149904e2ed5a43d9b652b1bd
|
|
23
|
+
seed_version: B6C
|
|
24
|
+
x-language-sections: # 语言节同步源(R-J 资产层唯一权威;注入面为同步副本)
|
|
25
|
+
- overlay: pomaster/components/backend-hard-spec/assets/stacks/spring-boot/spring-boot-application-overlay.md
|
|
26
|
+
sha256: c8b2afe8de6c5af245035381a272644acee75d4e7d0efea901cac1f45d18d2a4
|
|
27
|
+
attach: primary
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
# 环境与配置
|
|
31
|
+
|
|
32
|
+
> **聚合纪律**:本文档 12 节正文规则行逐字取自 frontmatter x-aggregation 所列来源协议(节内按「端 → 源编号升序」以加粗来源行分块,源内标题与层级原样保留),零新增、零改写、零删除;新增文本仅限文档标题、本注记与逐节来源行。
|
|
33
|
+
文末「语言与栈节」为 stacks overlay 资产 Scope/Rules/Checklist 的逐字节同步副本(标题降 2 级,正文零改动)——资产层为唯一权威,改规则只改 overlay、本区随同步。
|
|
34
|
+
|
|
35
|
+
## Scope
|
|
36
|
+
|
|
37
|
+
**源:FE 05 环境与配置协议(pomaster/components/frontend-hard-spec/assets/universal/05-environment-configuration-protocol.md)**
|
|
38
|
+
|
|
39
|
+
P0。管理环境划分、配置来源、环境变量、API 地址、Mock、日志等级和 Feature Flag 接入。
|
|
40
|
+
|
|
41
|
+
**源:BE 11 环境与配置协议(pomaster/components/backend-hard-spec/assets/universal/11-environment-configuration-protocol.md)**
|
|
42
|
+
|
|
43
|
+
规范环境、profile、secret、超时、配置来源、变更和漂移。
|
|
44
|
+
|
|
45
|
+
## Non-Scope
|
|
46
|
+
|
|
47
|
+
**源:FE 05 环境与配置协议**
|
|
48
|
+
|
|
49
|
+
不保存真实密钥,不定义后端部署,也不替代安全或 Feature Flag 业务协议。
|
|
50
|
+
|
|
51
|
+
**源:BE 11 环境与配置协议**
|
|
52
|
+
|
|
53
|
+
不规定具体环境名称、凭据或连接参数数值。
|
|
54
|
+
|
|
55
|
+
## Terms
|
|
56
|
+
|
|
57
|
+
**源:FE 05 环境与配置协议**
|
|
58
|
+
|
|
59
|
+
- Build-time Config:构建时固化的公开配置。
|
|
60
|
+
- Runtime Config:部署后可替换的公开配置。
|
|
61
|
+
- Secret:不得进入前端的敏感值。
|
|
62
|
+
- Environment:相互隔离的运行域。
|
|
63
|
+
|
|
64
|
+
**源:BE 11 环境与配置协议**
|
|
65
|
+
|
|
66
|
+
配置漂移是声明基线与构建、部署或运行时有效值不一致。
|
|
67
|
+
|
|
68
|
+
## MUST
|
|
69
|
+
|
|
70
|
+
**源:FE 05 环境与配置协议 · §MUST**
|
|
71
|
+
|
|
72
|
+
- 配置必须有 schema、类型、默认值、必填校验和环境矩阵。
|
|
73
|
+
- API、Mock、日志和环境标识从统一配置模块读取。
|
|
74
|
+
- 生产默认关闭 Mock、调试日志和开发工具。
|
|
75
|
+
- 缺少必填配置时启动失败或安全降级,不得猜值。
|
|
76
|
+
- 所有客户端配置均按公开信息处理。
|
|
77
|
+
|
|
78
|
+
**源:BE 11 环境与配置协议 · §MUST**
|
|
79
|
+
|
|
80
|
+
- 配置必须有类型、来源、默认行为、敏感级别、验证与变更路径。
|
|
81
|
+
|
|
82
|
+
## MUST NOT
|
|
83
|
+
|
|
84
|
+
**源:FE 05 环境与配置协议 · §MUST NOT**
|
|
85
|
+
|
|
86
|
+
- MUST NOT 在业务代码硬编码环境 URL、密钥或凭据。
|
|
87
|
+
- MUST NOT 让组件读取底层环境变量。
|
|
88
|
+
- MUST NOT 意外跨环境连接数据。
|
|
89
|
+
- MUST NOT 将环境文件当密钥保险箱提交。
|
|
90
|
+
|
|
91
|
+
**源:BE 11 环境与配置协议 · §MUST NOT**
|
|
92
|
+
|
|
93
|
+
- 不得把 secret 写入仓库、日志、示例、命令行历史或生成文档。
|
|
94
|
+
|
|
95
|
+
## SHOULD
|
|
96
|
+
|
|
97
|
+
**源:FE 05 环境与配置协议 · §SHOULD**
|
|
98
|
+
|
|
99
|
+
- SHOULD 提供无敏感值的配置示例和启动校验。
|
|
100
|
+
- SHOULD 明确标识非生产环境。
|
|
101
|
+
|
|
102
|
+
**源:BE 11 环境与配置协议 · §SHOULD**
|
|
103
|
+
|
|
104
|
+
- 应在启动时校验关键配置,并对版本与来源提供可观测证据。
|
|
105
|
+
|
|
106
|
+
## Contract
|
|
107
|
+
|
|
108
|
+
**源:FE 05 环境与配置协议 · §Contract**
|
|
109
|
+
|
|
110
|
+
```text
|
|
111
|
+
ConfigKey, Type, Required, Public, Default,
|
|
112
|
+
AllowedEnvironments, Validation, Owner
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**源:BE 11 环境与配置协议 · §Contract**
|
|
116
|
+
|
|
117
|
+
配置变更必须说明兼容影响、部署顺序、回滚和漂移检测方式。
|
|
118
|
+
|
|
119
|
+
## Checklist
|
|
120
|
+
|
|
121
|
+
**源:FE 05 环境与配置协议 · §Checklist**
|
|
122
|
+
|
|
123
|
+
- [ ] schema 和环境矩阵完整。
|
|
124
|
+
- [ ] 生产安全默认值明确。
|
|
125
|
+
- [ ] 前端产物无秘密值。
|
|
126
|
+
- [ ] Mock、日志和 API 来源统一。
|
|
127
|
+
|
|
128
|
+
**源:BE 11 环境与配置协议 · §Checklist**
|
|
129
|
+
|
|
130
|
+
- [ ] 本地、CI、测试与运行环境的来源和覆盖顺序已核对。
|
|
131
|
+
|
|
132
|
+
## Examples
|
|
133
|
+
|
|
134
|
+
**源:FE 05 环境与配置协议 · §Examples**
|
|
135
|
+
|
|
136
|
+
### 内容示例,可删除
|
|
137
|
+
|
|
138
|
+
业务 API 只读取 typed config 的 `apiBaseUrl`,组件不知道原始变量名称。
|
|
139
|
+
|
|
140
|
+
**源:BE 11 环境与配置协议 · §Examples**
|
|
141
|
+
|
|
142
|
+
- 缺少必需配置时启动失败并输出不含 secret 的稳定错误。
|
|
143
|
+
|
|
144
|
+
## Anti-patterns
|
|
145
|
+
|
|
146
|
+
**源:FE 05 环境与配置协议 · §Anti-patterns**
|
|
147
|
+
|
|
148
|
+
在多个 API 文件硬编码不同测试地址,通过注释切换生产地址。
|
|
149
|
+
|
|
150
|
+
**源:BE 11 环境与配置协议 · §Anti-patterns**
|
|
151
|
+
|
|
152
|
+
- 用环境默认值掩盖未声明的生产行为。
|
|
153
|
+
|
|
154
|
+
## Ownership
|
|
155
|
+
|
|
156
|
+
**源:FE 05 环境与配置协议 · §Ownership**
|
|
157
|
+
|
|
158
|
+
平台维护环境值,前端架构维护 schema,安全 Owner 裁决敏感性。
|
|
159
|
+
|
|
160
|
+
**源:BE 11 环境与配置协议 · §Ownership**
|
|
161
|
+
|
|
162
|
+
应用维护者定义消费契约,平台维护者提供受控配置与 secret 来源。
|
|
163
|
+
|
|
164
|
+
## Change Policy
|
|
165
|
+
|
|
166
|
+
**源:FE 05 环境与配置协议 · §Change Policy**
|
|
167
|
+
|
|
168
|
+
配置增删改必须同步 schema、示例、部署矩阵和回滚;破坏性变更提供迁移期。
|
|
169
|
+
|
|
170
|
+
**源:BE 11 环境与配置协议 · §Change Policy**
|
|
171
|
+
|
|
172
|
+
配置键重命名必须提供双读或迁移窗口并验证旧值清理。
|
|
173
|
+
|
|
174
|
+
## 语言与栈节(overlay 资产同步区)
|
|
175
|
+
|
|
176
|
+
> 本区各小节 = stacks/ overlay 资产 Scope/Rules/Checklist 的**逐字节同步副本**(标题降 2 级,正文零改动)。资产层(overlay 文件,catalog 在册、research 锚、bound 语义挂点)为唯一权威;本区为注入面副本,改规则只改 overlay、本区随同步。x-research-anchors 留在 overlay 资产 frontmatter,不复制进本主题文档(防双锚漂移)。
|
|
177
|
+
|
|
178
|
+
### spring-boot(源:stacks/spring-boot/spring-boot-application-overlay.md · T04 主挂点)
|
|
179
|
+
|
|
180
|
+
#### Scope
|
|
181
|
+
|
|
182
|
+
本 Overlay 具体化 Spring Boot 的配置装配、启动、健康检查和依赖管理边界。
|
|
183
|
+
|
|
184
|
+
#### Rules
|
|
185
|
+
|
|
186
|
+
- 必须记录 Boot 版本、配置来源、自动配置例外和启动验证。
|
|
187
|
+
- 不得从 Spring Boot 推断 Spring MVC、WebFlux、JAR、WAR 或 Tomcat 形态。
|
|
188
|
+
- 配置项和 actuator 暴露必须遵守安全与环境配置协议。
|
|
189
|
+
|
|
190
|
+
#### Checklist
|
|
191
|
+
|
|
192
|
+
- [ ] Java 依赖已显式选择。
|
|
193
|
+
- [ ] 自动配置与运行时事实可由构建或启动证据验证。
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
> **缺席诚实**:php / python(后端语言)无 overlay 资产,不落语言节。
|