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
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
"status": "vocab_pr_candidate",
|
|
4
4
|
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world);新 id 域段待登记:SEC",
|
|
5
5
|
"proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+9 条同因同请,合并进同一 vocab PR)",
|
|
6
|
-
"locked_vocab_untouched": true
|
|
6
|
+
"locked_vocab_untouched": true,
|
|
7
|
+
"resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
|
|
7
8
|
},
|
|
8
9
|
"x-spec-d-materialization": {
|
|
9
10
|
"status": "PROPOSAL",
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-spec-d-materialization": {
|
|
3
|
+
"status": "PROPOSAL",
|
|
4
|
+
"package": "裁定批 F/D3-R1 排除卡逐卡复核物化(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
|
|
5
|
+
"human_review_required": true,
|
|
6
|
+
"evidence": "PLANNED",
|
|
7
|
+
"provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
|
|
8
|
+
"group": "BE-G2",
|
|
9
|
+
"candidate_id": "POLICY.SEC.TRUST_BOUNDARY_ENFORCEMENT",
|
|
10
|
+
"pool_statement_sha16": "f951cc095101d9e6",
|
|
11
|
+
"curated_rule": "D3 逐卡复核批(Owner 2026-09-05 裁定 D3=逐卡复核;72 张保守排除卡逐卡核锚):required 9(D3b source=null 补锚落 MUST/MUST NOT 且与 MASTer 行锚交叉验证)+ advisory 16(Change Policy 锚 14 张降 advisory[行内容含「必须」行为规范、强度只降不升] + 池密度序前 2)= 25(D6 合并上限 policy+TP 合计 25/批内执行;超出 17 张 advisory 留 D3-R2 轮次台账);维持排除 30(Ownership 归属说明族)",
|
|
12
|
+
"denominator": "MASTer(池卡锚)"
|
|
13
|
+
},
|
|
14
|
+
"x-b6-porting": {
|
|
15
|
+
"status": "PROPOSAL",
|
|
16
|
+
"batch": "D3-R1",
|
|
17
|
+
"human_review_required": true,
|
|
18
|
+
"classification_face": "policy",
|
|
19
|
+
"enforcement_axis": {
|
|
20
|
+
"source_sections": [
|
|
21
|
+
"MUST"
|
|
22
|
+
],
|
|
23
|
+
"rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
|
|
24
|
+
"asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
|
|
25
|
+
},
|
|
26
|
+
"extra_master_sections": [],
|
|
27
|
+
"denominator": "vendor",
|
|
28
|
+
"vendor_pin": {
|
|
29
|
+
"path": "pomaster/components/backend-hard-spec/assets/universal/10-security-protocol.md",
|
|
30
|
+
"sha256": "56387f03edd35df50a5a701f4daab174b744d490663393f43331cf5401149f67",
|
|
31
|
+
"bytes": 1385
|
|
32
|
+
},
|
|
33
|
+
"seeded_spec": ".pomaster/specs/hard/backend/10-security-protocol.md",
|
|
34
|
+
"seed_manifest": "packages/cli/seeds/manifest.json",
|
|
35
|
+
"d3_review": {
|
|
36
|
+
"excluded_from_batch": "B6C",
|
|
37
|
+
"exclusion_reason_at_seed": "卡层 source=null(锚证据不足),保守排除待复核",
|
|
38
|
+
"adjudication": "D3 逐卡复核(Owner 2026-09-05 裁定 D3=逐卡复核,裁定批 F 落地 2026-09-05):本卡原属 B6C 保守排除留池(排除理由:卡层 source=null(锚证据不足),保守排除待复核);复核补锚回 vendor/MASTer 源取得行级证据,锚段=MUST,按强度入册(MUST/MUST NOT 行锚 required 原样)",
|
|
39
|
+
"anchor_evidence": "MASTer 10-security-protocol.md 25「- 所有信任边界必须执行服务端校验、最小权限、失败关闭和安全审计。」",
|
|
40
|
+
"pool_enforcement_at_seed": "required_when_applicable"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"id": "POLICY.SEC.TRUST_BOUNDARY_ENFORCEMENT",
|
|
44
|
+
"kind": "policy",
|
|
45
|
+
"axis_profile": "policy_default",
|
|
46
|
+
"classification": "UNIVERSAL_POLICY",
|
|
47
|
+
"axes": {
|
|
48
|
+
"lifecycle": "PROPOSED",
|
|
49
|
+
"confidence": "UNRESOLVED",
|
|
50
|
+
"evidence": "PLANNED",
|
|
51
|
+
"change": "STABLE"
|
|
52
|
+
},
|
|
53
|
+
"title_zh": "信任边界服务端四动作",
|
|
54
|
+
"statement_zh": "数据或调用每次从较低信任域进入较高权限域时,必须由服务端一侧完成四项动作——输入校验、最小权限授予、默认拒绝(fail-closed)与审计留痕——任何一项不可省略。",
|
|
55
|
+
"statement_en_keywords": [
|
|
56
|
+
"trust boundary",
|
|
57
|
+
"server-side validation",
|
|
58
|
+
"least privilege",
|
|
59
|
+
"fail-closed",
|
|
60
|
+
"audit trail"
|
|
61
|
+
],
|
|
62
|
+
"applies_when": {
|
|
63
|
+
"lane": "backend",
|
|
64
|
+
"condition": "任何跨信任域的数据流或调用入口",
|
|
65
|
+
"applicability_note": "任何跨信任域的数据流或调用入口"
|
|
66
|
+
},
|
|
67
|
+
"enforcement": "required_when_applicable",
|
|
68
|
+
"authority": {
|
|
69
|
+
"owner": "HUMAN_OWNER",
|
|
70
|
+
"delegates": [],
|
|
71
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
72
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
73
|
+
},
|
|
74
|
+
"origin": "ingested",
|
|
75
|
+
"origin_note": "裁定批 F/D3-R1 D3 逐卡复核物化(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
76
|
+
"sources": [
|
|
77
|
+
{
|
|
78
|
+
"type": "design_seed",
|
|
79
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G2.yaml",
|
|
80
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
81
|
+
"locator": {
|
|
82
|
+
"candidate": "POLICY.SEC.TRUST_BOUNDARY_ENFORCEMENT",
|
|
83
|
+
"source_protocol": ".trellis/spec/backend/10-security-protocol.md",
|
|
84
|
+
"lines": "25"
|
|
85
|
+
},
|
|
86
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"review_notes": [
|
|
90
|
+
"信任边界四动作义务在既有 228 条中无对应条目(B6b-I BOUNDARY.VALIDATE_IN_ENCODE_OUT 管数据入口校验/出口编码通则,本管跨信任域提权的四动作闭环),零语义重复;与 BOUNDARY.VALIDATE_IN_ENCODE_OUT 互引(通则/专项)。",
|
|
91
|
+
"D3b 补锚:卡层 source=null,复核回 MASTer 10-security-protocol.md L25(MUST 段)取得行级证据,required 入册(强度沿池判原样)。"
|
|
92
|
+
]
|
|
93
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
|
|
5
|
+
"proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+25 条同因同请,合并进同一 vocab PR)",
|
|
6
|
+
"locked_vocab_untouched": true,
|
|
7
|
+
"resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
|
|
8
|
+
},
|
|
9
|
+
"x-spec-d-materialization": {
|
|
10
|
+
"status": "PROPOSAL",
|
|
11
|
+
"package": "B6b-I FE 播种移植(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
|
|
12
|
+
"human_review_required": true,
|
|
13
|
+
"evidence": "PLANNED",
|
|
14
|
+
"provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
|
|
15
|
+
"group": "FE-G1",
|
|
16
|
+
"candidate_id": "POLICY.SEC.UPLOAD_DOWNLOAD_SERVER_RECHECK",
|
|
17
|
+
"density_rank": null,
|
|
18
|
+
"density_score": 32.38,
|
|
19
|
+
"pool_statement_sha16": "b8f4c26bf76cf533",
|
|
20
|
+
"curated_rule": "B6b-I 分母(FE 01-23)required 池(ELIGIBLE 未物化)按池密度序取前 22 + advisory 池(SHOULD 源 backlog policy 卡)按同公式密度序取前 3 = 25(D5 上限);UNIVERSAL + UNIVERSAL_POLICY + 无 uncertainty + 非 project_scope + 非重复",
|
|
21
|
+
"denominator": "MASTer(池卡 source_protocol 锚)"
|
|
22
|
+
},
|
|
23
|
+
"x-b6-porting": {
|
|
24
|
+
"status": "PROPOSAL",
|
|
25
|
+
"batch": "B6B-1",
|
|
26
|
+
"human_review_required": true,
|
|
27
|
+
"enforcement_axis": {
|
|
28
|
+
"source_sections": [
|
|
29
|
+
"MUST"
|
|
30
|
+
],
|
|
31
|
+
"rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
|
|
32
|
+
"asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
|
|
33
|
+
},
|
|
34
|
+
"extra_master_sections": [],
|
|
35
|
+
"denominator": "vendor",
|
|
36
|
+
"vendor_pin": {
|
|
37
|
+
"path": "pomaster/components/frontend-hard-spec/assets/universal/04-security-protocol.md",
|
|
38
|
+
"sha256": "4d9bb6bd34a64fcc3e362c969492bc326533e16ef4c6d2284dc01442733504e6",
|
|
39
|
+
"bytes": 21948
|
|
40
|
+
},
|
|
41
|
+
"seeded_spec": ".pomaster/specs/hard/frontend/04-security-protocol.md",
|
|
42
|
+
"seed_manifest": "packages/cli/seeds/manifest.json"
|
|
43
|
+
},
|
|
44
|
+
"id": "POLICY.SEC.UPLOAD_DOWNLOAD_SERVER_RECHECK",
|
|
45
|
+
"kind": "policy",
|
|
46
|
+
"axis_profile": "policy_default",
|
|
47
|
+
"classification": "UNIVERSAL_POLICY",
|
|
48
|
+
"axes": {
|
|
49
|
+
"lifecycle": "PROPOSED",
|
|
50
|
+
"confidence": "UNRESOLVED",
|
|
51
|
+
"evidence": "PLANNED",
|
|
52
|
+
"change": "STABLE"
|
|
53
|
+
},
|
|
54
|
+
"title_zh": "上传下载服务端复验",
|
|
55
|
+
"statement_zh": "文件上传与下载的权限、类型与范围必须由服务端再次校验,客户端检查不作为边界。",
|
|
56
|
+
"statement_en_keywords": [
|
|
57
|
+
"server side recheck",
|
|
58
|
+
"upload download boundary",
|
|
59
|
+
"client checks are not the boundary"
|
|
60
|
+
],
|
|
61
|
+
"applies_when": {
|
|
62
|
+
"lane": "any",
|
|
63
|
+
"condition": "文件上传下载链路",
|
|
64
|
+
"applicability_note": "文件上传下载链路"
|
|
65
|
+
},
|
|
66
|
+
"enforcement": "required_when_applicable",
|
|
67
|
+
"authority": {
|
|
68
|
+
"owner": "HUMAN_OWNER",
|
|
69
|
+
"delegates": [],
|
|
70
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
71
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
72
|
+
},
|
|
73
|
+
"origin": "ingested",
|
|
74
|
+
"origin_note": "B6b-I FE 播种移植物化;statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
75
|
+
"sources": [
|
|
76
|
+
{
|
|
77
|
+
"type": "design_seed",
|
|
78
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml",
|
|
79
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
80
|
+
"locator": {
|
|
81
|
+
"candidate": "POLICY.SEC.UPLOAD_DOWNLOAD_SERVER_RECHECK",
|
|
82
|
+
"source_protocol": ".trellis/spec/frontend/04-security-protocol.md",
|
|
83
|
+
"lines": "L25"
|
|
84
|
+
},
|
|
85
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"review_notes": [
|
|
89
|
+
"文件传输服务端复验在既有 143 条中无对应条目,零语义重复;与 BOUNDARY.VALIDATE_IN_ENCODE_OUT 为通则与特例关系(数据边界通则 vs 上传下载专项),互引。"
|
|
90
|
+
]
|
|
91
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
|
|
5
|
+
"proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+25 条同因同请,合并进同一 vocab PR)",
|
|
6
|
+
"locked_vocab_untouched": true,
|
|
7
|
+
"resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
|
|
8
|
+
},
|
|
9
|
+
"x-spec-d-materialization": {
|
|
10
|
+
"status": "PROPOSAL",
|
|
11
|
+
"package": "B6b-I FE 播种移植(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
|
|
12
|
+
"human_review_required": true,
|
|
13
|
+
"evidence": "PLANNED",
|
|
14
|
+
"provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
|
|
15
|
+
"group": "FE-G1",
|
|
16
|
+
"candidate_id": "POLICY.SEC.URL_SOURCE_ALLOWLIST",
|
|
17
|
+
"density_rank": null,
|
|
18
|
+
"density_score": 32.62,
|
|
19
|
+
"pool_statement_sha16": "c6c8009c65f759dc",
|
|
20
|
+
"curated_rule": "B6b-I 分母(FE 01-23)required 池(ELIGIBLE 未物化)按池密度序取前 22 + advisory 池(SHOULD 源 backlog policy 卡)按同公式密度序取前 3 = 25(D5 上限);UNIVERSAL + UNIVERSAL_POLICY + 无 uncertainty + 非 project_scope + 非重复",
|
|
21
|
+
"denominator": "MASTer(池卡 source_protocol 锚)"
|
|
22
|
+
},
|
|
23
|
+
"x-b6-porting": {
|
|
24
|
+
"status": "PROPOSAL",
|
|
25
|
+
"batch": "B6B-1",
|
|
26
|
+
"human_review_required": true,
|
|
27
|
+
"enforcement_axis": {
|
|
28
|
+
"source_sections": [
|
|
29
|
+
"MUST"
|
|
30
|
+
],
|
|
31
|
+
"rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
|
|
32
|
+
"asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
|
|
33
|
+
},
|
|
34
|
+
"extra_master_sections": [],
|
|
35
|
+
"denominator": "vendor",
|
|
36
|
+
"vendor_pin": {
|
|
37
|
+
"path": "pomaster/components/frontend-hard-spec/assets/universal/04-security-protocol.md",
|
|
38
|
+
"sha256": "4d9bb6bd34a64fcc3e362c969492bc326533e16ef4c6d2284dc01442733504e6",
|
|
39
|
+
"bytes": 21948
|
|
40
|
+
},
|
|
41
|
+
"seeded_spec": ".pomaster/specs/hard/frontend/04-security-protocol.md",
|
|
42
|
+
"seed_manifest": "packages/cli/seeds/manifest.json"
|
|
43
|
+
},
|
|
44
|
+
"id": "POLICY.SEC.URL_SOURCE_ALLOWLIST",
|
|
45
|
+
"kind": "policy",
|
|
46
|
+
"axis_profile": "policy_default",
|
|
47
|
+
"classification": "UNIVERSAL_POLICY",
|
|
48
|
+
"axes": {
|
|
49
|
+
"lifecycle": "PROPOSED",
|
|
50
|
+
"confidence": "UNRESOLVED",
|
|
51
|
+
"evidence": "PLANNED",
|
|
52
|
+
"change": "STABLE"
|
|
53
|
+
},
|
|
54
|
+
"title_zh": "跳转与资源地址限定受信来源",
|
|
55
|
+
"statement_zh": "跳转地址、外链、下载与资源地址必须限定安全协议与受信来源,禁止由不可信参数直接决定。",
|
|
56
|
+
"statement_en_keywords": [
|
|
57
|
+
"url source allowlist",
|
|
58
|
+
"safe protocols only",
|
|
59
|
+
"no untrusted redirect"
|
|
60
|
+
],
|
|
61
|
+
"applies_when": {
|
|
62
|
+
"lane": "any",
|
|
63
|
+
"condition": "构造或接受任何跳转/加载地址",
|
|
64
|
+
"applicability_note": "构造或接受任何跳转/加载地址"
|
|
65
|
+
},
|
|
66
|
+
"enforcement": "required_when_applicable",
|
|
67
|
+
"authority": {
|
|
68
|
+
"owner": "HUMAN_OWNER",
|
|
69
|
+
"delegates": [],
|
|
70
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
71
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
72
|
+
},
|
|
73
|
+
"origin": "ingested",
|
|
74
|
+
"origin_note": "B6b-I FE 播种移植物化;statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
75
|
+
"sources": [
|
|
76
|
+
{
|
|
77
|
+
"type": "design_seed",
|
|
78
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml",
|
|
79
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
80
|
+
"locator": {
|
|
81
|
+
"candidate": "POLICY.SEC.URL_SOURCE_ALLOWLIST",
|
|
82
|
+
"source_protocol": ".trellis/spec/frontend/04-security-protocol.md",
|
|
83
|
+
"lines": "L29"
|
|
84
|
+
},
|
|
85
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"review_notes": [
|
|
89
|
+
"URL 来源受信治理在既有 143 条中无对应条目,零语义重复。"
|
|
90
|
+
]
|
|
91
|
+
}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
"status": "vocab_pr_candidate",
|
|
4
4
|
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
|
|
5
5
|
"proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+9 条同因同请,合并进同一 vocab PR)",
|
|
6
|
-
"locked_vocab_untouched": true
|
|
6
|
+
"locked_vocab_untouched": true,
|
|
7
|
+
"resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
|
|
7
8
|
},
|
|
8
9
|
"x-spec-d-materialization": {
|
|
9
10
|
"status": "PROPOSAL",
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
"status": "vocab_pr_candidate",
|
|
4
4
|
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
|
|
5
5
|
"proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+9 条同因同请,合并进同一 vocab PR)",
|
|
6
|
-
"locked_vocab_untouched": true
|
|
6
|
+
"locked_vocab_untouched": true,
|
|
7
|
+
"resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
|
|
7
8
|
},
|
|
8
9
|
"x-spec-d-materialization": {
|
|
9
10
|
"status": "PROPOSAL",
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
"status": "vocab_pr_candidate",
|
|
4
4
|
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
|
|
5
5
|
"proposal": "词汇表 PR 登记 policy kind;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(两种落法待裁决,见 candidates-draft.json meta.vocab_findings[0],affected=45)",
|
|
6
|
-
"locked_vocab_untouched": true
|
|
6
|
+
"locked_vocab_untouched": true,
|
|
7
|
+
"resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
|
|
7
8
|
},
|
|
8
9
|
"x-pilot-proposal": {
|
|
9
10
|
"status": "PROPOSAL",
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-spec-d-materialization": {
|
|
3
|
+
"status": "PROPOSAL",
|
|
4
|
+
"package": "裁定批 G/D3-R2 排除卡逐卡复核物化·R2 轮(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
|
|
5
|
+
"human_review_required": true,
|
|
6
|
+
"evidence": "PLANNED",
|
|
7
|
+
"provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
|
|
8
|
+
"group": "BE-G1",
|
|
9
|
+
"candidate_id": "POLICY.SPEC.FAMILY_CONFLICT_PRECEDENCE",
|
|
10
|
+
"pool_statement_sha16": "7d4d4c31acfe1509",
|
|
11
|
+
"curated_rule": "D3 逐卡复核批 R2 轮(Owner 2026-09-05 裁定 D3=逐卡复核;裁定批 G 收尾批):R1 入册 25(required 9 + advisory 16)后余量 17 张 advisory 全量入册——SHOULD 锚 13(卡层行锚缺席,复核回 MASTer 源取得行级证据:B6c BE-G4 六 + BE-G3 七)+ 非 12 段锚 4(B6b-II FE index 2 / B6c BE index 冲突优先序 1 / B6b-I FE20 Change Policy 锚 1,extra_master_sections 如实登记);全部 advisory(池判 required 卡强度只降不升);D6 合并口径 ≤25/批满足(17 ≤ 25);72 张总账=R1 25 + R2 17 + 维持排除 30",
|
|
12
|
+
"denominator": "MASTer(池卡锚)"
|
|
13
|
+
},
|
|
14
|
+
"x-b6-porting": {
|
|
15
|
+
"status": "PROPOSAL",
|
|
16
|
+
"batch": "D3-R2",
|
|
17
|
+
"human_review_required": true,
|
|
18
|
+
"classification_face": "policy",
|
|
19
|
+
"enforcement_axis": {
|
|
20
|
+
"source_sections": [
|
|
21
|
+
"冲突与责任边界"
|
|
22
|
+
],
|
|
23
|
+
"rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
|
|
24
|
+
"asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
|
|
25
|
+
},
|
|
26
|
+
"extra_master_sections": [
|
|
27
|
+
"冲突与责任边界"
|
|
28
|
+
],
|
|
29
|
+
"denominator": "vendor",
|
|
30
|
+
"vendor_pin": {
|
|
31
|
+
"path": "pomaster/components/backend-hard-spec/assets/universal/index.md",
|
|
32
|
+
"sha256": "b50c1fdcab5d1a3217a6e28059580195f681b6e68f465eb8e055bd8e5310c479",
|
|
33
|
+
"bytes": 14733
|
|
34
|
+
},
|
|
35
|
+
"seeded_spec": ".pomaster/specs/hard/backend/index.md",
|
|
36
|
+
"seed_manifest": "packages/cli/seeds/manifest.json",
|
|
37
|
+
"d3_review": {
|
|
38
|
+
"excluded_from_batch": "B6C",
|
|
39
|
+
"exclusion_reason_at_seed": "行锚段映射非纯建议段(池 advisory 判定矛盾,保守排除待复核)",
|
|
40
|
+
"adjudication": "D3 逐卡复核 R2 轮(Owner 2026-09-05 裁定 D3=逐卡复核,裁定批 G 落地 2026-09-05):本卡原属 B6C 保守排除留池(排除理由:行锚段映射非纯建议段(池 advisory 判定矛盾,保守排除待复核));复核补锚回 MASTer 源取得行级证据,锚段=冲突与责任边界,按强度入册(锚行行为规范成分、无段级强度词形 advisory 落点)",
|
|
41
|
+
"anchor_evidence": "MASTer index.md 158-163「- 安全规则优先于便利性;最终服务端授权优先于客户端展示。」",
|
|
42
|
+
"pool_enforcement_at_seed": "advisory"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"id": "POLICY.SPEC.FAMILY_CONFLICT_PRECEDENCE",
|
|
46
|
+
"kind": "policy",
|
|
47
|
+
"axis_profile": "policy_default",
|
|
48
|
+
"classification": "UNIVERSAL_POLICY",
|
|
49
|
+
"axes": {
|
|
50
|
+
"lifecycle": "PROPOSED",
|
|
51
|
+
"confidence": "UNRESOLVED",
|
|
52
|
+
"evidence": "PLANNED",
|
|
53
|
+
"change": "STABLE"
|
|
54
|
+
},
|
|
55
|
+
"title_zh": "协议冲突裁决优先序",
|
|
56
|
+
"statement_zh": "族内规则冲突按固定优先序裁决——安全优先于便利,服务端权威授权优先于客户端展示,正式契约优先于替代品、历史示例与会话记录,权威语义协议优先于边界转换协议。",
|
|
57
|
+
"statement_en_keywords": [
|
|
58
|
+
"conflict precedence",
|
|
59
|
+
"security over convenience",
|
|
60
|
+
"formal contract priority"
|
|
61
|
+
],
|
|
62
|
+
"applies_when": {
|
|
63
|
+
"lane": "any",
|
|
64
|
+
"condition": "族内协议语义冲突裁决",
|
|
65
|
+
"applicability_note": "族内协议语义冲突裁决"
|
|
66
|
+
},
|
|
67
|
+
"enforcement": "advisory",
|
|
68
|
+
"authority": {
|
|
69
|
+
"owner": "HUMAN_OWNER",
|
|
70
|
+
"delegates": [],
|
|
71
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
72
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
73
|
+
},
|
|
74
|
+
"origin": "ingested",
|
|
75
|
+
"origin_note": "裁定批 G/D3-R2 D3 逐卡复核物化·R2 轮(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
76
|
+
"sources": [
|
|
77
|
+
{
|
|
78
|
+
"type": "design_seed",
|
|
79
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G1.yaml",
|
|
80
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
81
|
+
"locator": {
|
|
82
|
+
"candidate": "POLICY.SPEC.FAMILY_CONFLICT_PRECEDENCE",
|
|
83
|
+
"source_protocol": ".trellis/spec/backend/index.md",
|
|
84
|
+
"lines": "158-163"
|
|
85
|
+
},
|
|
86
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"review_notes": [
|
|
90
|
+
"协议族冲突裁决优先序在既有 228 条中无对应条目(CONFLICT.PRIORITY_LADDER 管跨域冲突优先阶梯——本管协议族内语义冲突的整序裁决,互引不合并;「正式契约优先」子句与 API.NO_INFORMAL_CONTRACT 互补);卡自带 uncertainty 注记「本卡价值在整序」如实承袭。",
|
|
91
|
+
"锚落 MASTer BE index 自有段「冲突与责任边界」(L158-163)——D3 复核按锚行内容 advisory 入册(池判 advisory 原样;定义性优先序声明无段级强度词形),extra_master_sections 如实登记。"
|
|
92
|
+
]
|
|
93
|
+
}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
"status": "vocab_pr_candidate",
|
|
4
4
|
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
|
|
5
5
|
"proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+9 条同因同请,合并进同一 vocab PR)",
|
|
6
|
-
"locked_vocab_untouched": true
|
|
6
|
+
"locked_vocab_untouched": true,
|
|
7
|
+
"resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
|
|
7
8
|
},
|
|
8
9
|
"x-spec-d-materialization": {
|
|
9
10
|
"status": "PROPOSAL",
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-spec-d-materialization": {
|
|
3
|
+
"status": "PROPOSAL",
|
|
4
|
+
"package": "裁定批 G/D3-R2 排除卡逐卡复核物化·R2 轮(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
|
|
5
|
+
"human_review_required": true,
|
|
6
|
+
"evidence": "PLANNED",
|
|
7
|
+
"provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
|
|
8
|
+
"group": "FE-G1",
|
|
9
|
+
"candidate_id": "POLICY.SPEC.FREEZE_BEFORE_USE",
|
|
10
|
+
"pool_statement_sha16": "5a23173d38de9041",
|
|
11
|
+
"curated_rule": "D3 逐卡复核批 R2 轮(Owner 2026-09-05 裁定 D3=逐卡复核;裁定批 G 收尾批):R1 入册 25(required 9 + advisory 16)后余量 17 张 advisory 全量入册——SHOULD 锚 13(卡层行锚缺席,复核回 MASTer 源取得行级证据:B6c BE-G4 六 + BE-G3 七)+ 非 12 段锚 4(B6b-II FE index 2 / B6c BE index 冲突优先序 1 / B6b-I FE20 Change Policy 锚 1,extra_master_sections 如实登记);全部 advisory(池判 required 卡强度只降不升);D6 合并口径 ≤25/批满足(17 ≤ 25);72 张总账=R1 25 + R2 17 + 维持排除 30",
|
|
12
|
+
"denominator": "MASTer(池卡锚)"
|
|
13
|
+
},
|
|
14
|
+
"x-b6-porting": {
|
|
15
|
+
"status": "PROPOSAL",
|
|
16
|
+
"batch": "D3-R2",
|
|
17
|
+
"human_review_required": true,
|
|
18
|
+
"classification_face": "policy",
|
|
19
|
+
"enforcement_axis": {
|
|
20
|
+
"source_sections": [
|
|
21
|
+
"Spec 生命周期"
|
|
22
|
+
],
|
|
23
|
+
"rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
|
|
24
|
+
"asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
|
|
25
|
+
},
|
|
26
|
+
"extra_master_sections": [
|
|
27
|
+
"Spec 生命周期"
|
|
28
|
+
],
|
|
29
|
+
"denominator": "vendor",
|
|
30
|
+
"vendor_pin": {
|
|
31
|
+
"path": "pomaster/components/frontend-hard-spec/assets/universal/index.md",
|
|
32
|
+
"sha256": "37fc443ce1f90eaa2584a82e12300d8281760332ec69d55a52b26cb22a2b2375",
|
|
33
|
+
"bytes": 22578
|
|
34
|
+
},
|
|
35
|
+
"seeded_spec": ".pomaster/specs/hard/frontend/index.md",
|
|
36
|
+
"seed_manifest": "packages/cli/seeds/manifest.json",
|
|
37
|
+
"d3_review": {
|
|
38
|
+
"excluded_from_batch": "B6B-2",
|
|
39
|
+
"exclusion_reason_at_seed": "行锚全落 MASTer 项目扩展段(12 段闭包外),无源段证据,保守排除待复核",
|
|
40
|
+
"adjudication": "D3 逐卡复核 R2 轮(Owner 2026-09-05 裁定 D3=逐卡复核,裁定批 G 落地 2026-09-05):本卡原属 B6B-2 保守排除留池(排除理由:行锚全落 MASTer 项目扩展段(12 段闭包外),无源段证据,保守排除待复核);复核按锚行内容裁定 advisory 入册(锚行行为规范成分、无段级强度词形 advisory 落点)",
|
|
41
|
+
"anchor_evidence": "MASTer index.md L63-L68「- Frozen/Baseline 表示“可以作为开发依据”,不是永远不能改。」",
|
|
42
|
+
"pool_enforcement_at_seed": "advisory"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"id": "POLICY.SPEC.FREEZE_BEFORE_USE",
|
|
46
|
+
"kind": "policy",
|
|
47
|
+
"axis_profile": "policy_default",
|
|
48
|
+
"classification": "UNIVERSAL_POLICY",
|
|
49
|
+
"axes": {
|
|
50
|
+
"lifecycle": "PROPOSED",
|
|
51
|
+
"confidence": "UNRESOLVED",
|
|
52
|
+
"evidence": "PLANNED",
|
|
53
|
+
"change": "STABLE"
|
|
54
|
+
},
|
|
55
|
+
"title_zh": "规格消费前冻结",
|
|
56
|
+
"statement_zh": "各类规格应在被消费前冻结:需求规格在进入开发前、接口规格在联调前、公共组件规格在首次公共复用前、整体基线在首个垂直切片完成后。",
|
|
57
|
+
"statement_en_keywords": [
|
|
58
|
+
"freeze before use",
|
|
59
|
+
"requirement spec frozen before development",
|
|
60
|
+
"baseline after first vertical slice"
|
|
61
|
+
],
|
|
62
|
+
"applies_when": {
|
|
63
|
+
"lane": "any",
|
|
64
|
+
"condition": "规格冻结时点安排",
|
|
65
|
+
"applicability_note": "规格冻结时点安排"
|
|
66
|
+
},
|
|
67
|
+
"enforcement": "advisory",
|
|
68
|
+
"authority": {
|
|
69
|
+
"owner": "HUMAN_OWNER",
|
|
70
|
+
"delegates": [],
|
|
71
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
72
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
73
|
+
},
|
|
74
|
+
"origin": "ingested",
|
|
75
|
+
"origin_note": "裁定批 G/D3-R2 D3 逐卡复核物化·R2 轮(原 B6B-2 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
76
|
+
"sources": [
|
|
77
|
+
{
|
|
78
|
+
"type": "design_seed",
|
|
79
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml",
|
|
80
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
81
|
+
"locator": {
|
|
82
|
+
"candidate": "POLICY.SPEC.FREEZE_BEFORE_USE",
|
|
83
|
+
"source_protocol": ".trellis/spec/frontend/index.md",
|
|
84
|
+
"lines": "L63-L68"
|
|
85
|
+
},
|
|
86
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"review_notes": [
|
|
90
|
+
"规格消费前冻结时点在既有 228 条中无对应条目;与 POLICY.SPEC.DRAFT_NOT_BASELINE、SPEC.ADMISSION_CRITERIA(B6b-I:草稿非基线/准入判据)同族互引——彼管草稿状态判定与准入,本管逐类规格的冻结时点安排(「可作开发依据」非「永不修改」,修改走受控变更)。",
|
|
91
|
+
"锚落 MASTer FE index 自有段「Spec 生命周期」(L63-L68)——D3 复核按锚行内容 advisory 入册(池判 advisory 原样),extra_master_sections 如实登记。"
|
|
92
|
+
]
|
|
93
|
+
}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
"status": "vocab_pr_candidate",
|
|
4
4
|
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
|
|
5
5
|
"proposal": "词汇表 PR 登记 policy kind;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(两种落法待裁决,见 candidates-draft.json meta.vocab_findings[0],affected=45)",
|
|
6
|
-
"locked_vocab_untouched": true
|
|
6
|
+
"locked_vocab_untouched": true,
|
|
7
|
+
"resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
|
|
7
8
|
},
|
|
8
9
|
"x-pilot-proposal": {
|
|
9
10
|
"status": "PROPOSAL",
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
"status": "vocab_pr_candidate",
|
|
4
4
|
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
|
|
5
5
|
"proposal": "词汇表 PR 登记 policy kind;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(两种落法待裁决,见 candidates-draft.json meta.vocab_findings[0],affected=45)",
|
|
6
|
-
"locked_vocab_untouched": true
|
|
6
|
+
"locked_vocab_untouched": true,
|
|
7
|
+
"resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
|
|
7
8
|
},
|
|
8
9
|
"x-pilot-proposal": {
|
|
9
10
|
"status": "PROPOSAL",
|