pomaster 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -10
- package/catalog/archetypes/archetype.frontend.error_taxonomy.json +13 -5
- package/catalog/archetypes/archetype.frontend.feature_oriented.json +1 -1
- package/catalog/archetypes/archetype.state.async_command.json +4 -4
- package/catalog/catalog-lock.draft.json +1120 -104
- package/catalog/gates/gate.be.api.contract_checks.json +2 -1
- package/catalog/gates/gate.be.chg.contract_change_checks.json +2 -1
- package/catalog/gates/gate.chg.prechange_checks.json +2 -1
- package/catalog/gates/gate.web.api.request_checks.json +2 -1
- package/catalog/gates/gate.web.grid.checks.json +2 -1
- package/catalog/knowledge/knowledge.api.example_stable_error_code.json +2 -1
- package/catalog/knowledge/knowledge.chg.example_compat_window.json +2 -1
- package/catalog/knowledge/knowledge.chg.example_prop_migration.json +2 -1
- package/catalog/knowledge/knowledge.fp.api.field_drift_no_contract.json +2 -1
- package/catalog/knowledge/knowledge.fp.api.per_page_http_client.json +2 -1
- package/catalog/knowledge/knowledge.fp.be.contract_drift.json +2 -1
- package/catalog/knowledge/knowledge.fp.chg.page_local_padding.json +2 -1
- package/catalog/knowledge/knowledge.fp.grid.global_td_width.json +2 -1
- package/catalog/knowledge/knowledge.web.api.example_get_entity_list.json +2 -1
- package/catalog/knowledge/knowledge.web.grid.example_column_preset.json +2 -1
- package/catalog/policies/authority.be.api_contract_ownership.json +2 -1
- package/catalog/policies/authority.be.contract_ownership.json +2 -1
- package/catalog/policies/authority.chg.change_owners.json +2 -1
- package/catalog/policies/authority.web.api.request_owners.json +2 -1
- package/catalog/policies/authority.web.grid.ownership.json +2 -1
- package/catalog/policies/policy.ai.change_plan_first.json +91 -0
- package/catalog/policies/policy.ai.fact_inference_separation.json +91 -0
- package/catalog/policies/policy.ai.read_search_verify_before_write.json +92 -0
- package/catalog/policies/policy.ai.rule_relaxation_approval.json +91 -0
- package/catalog/policies/policy.api.backward_compat_defaults.json +2 -1
- package/catalog/policies/policy.api.contract_impl_consistency.json +2 -1
- package/catalog/policies/policy.api.no_informal_contract.json +2 -1
- package/catalog/policies/policy.arch.adr_immutable_history.json +91 -0
- package/catalog/policies/policy.arch.decision_tradeoff_record.json +2 -1
- package/catalog/policies/policy.arch.no_convenience_over_boundary.json +93 -0
- package/catalog/policies/policy.arch.prefer_verifiable_option.json +92 -0
- package/catalog/policies/policy.authz.no_gating_proxy_trust.json +99 -0
- package/catalog/policies/policy.authz.permission_scope_expansion_gate.json +99 -0
- package/catalog/policies/policy.authz.server_five_factor_verification.json +101 -0
- package/catalog/policies/policy.be.conc.prefer_db_constraints.json +97 -0
- package/catalog/policies/policy.be.db.expand_migrate_contract.json +97 -0
- package/catalog/policies/policy.be.idem.key_payload_conflict.json +97 -0
- package/catalog/policies/policy.be.model.single_boundary_conversion.json +97 -0
- package/catalog/policies/policy.be.sql.index_for_known_queries.json +97 -0
- package/catalog/policies/policy.be.state.single_rule_source.json +97 -0
- package/catalog/policies/policy.be.txn.short_locks_compensation.json +96 -0
- package/catalog/policies/policy.bound.search_first_entry_only.json +91 -0
- package/catalog/policies/policy.boundary.validate_in_encode_out.json +92 -0
- package/catalog/policies/policy.cache.failure_mode_guards.json +93 -0
- package/catalog/policies/policy.cache.lifecycle_definition.json +2 -1
- package/catalog/policies/policy.cache.schema_versioning.json +91 -0
- package/catalog/policies/policy.cfg.config_attribute_completeness.json +95 -0
- package/catalog/policies/policy.cfg.key_rename_dual_read.json +92 -0
- package/catalog/policies/policy.cfg.no_secret_dispersal.json +90 -0
- package/catalog/policies/policy.cfg.production_safe_defaults.json +92 -0
- package/catalog/policies/policy.cfg.schema_backed_config.json +92 -0
- package/catalog/policies/policy.chg.affect_templates.json +2 -1
- package/catalog/policies/policy.chg.breaking_versioning.json +2 -1
- package/catalog/policies/policy.chg.compat_migration_rollback.json +2 -1
- package/catalog/policies/policy.chg.deprecate_before_delete.json +2 -1
- package/catalog/policies/policy.chg.fix_at_root_cause_level.json +2 -1
- package/catalog/policies/policy.chg.no_unrelated_changes.json +91 -0
- package/catalog/policies/policy.chg.observable_evolution.json +2 -1
- package/catalog/policies/policy.chg.prechange_consumer_scan.json +2 -1
- package/catalog/policies/policy.chg.staged_rollout.json +2 -1
- package/catalog/policies/policy.chg.sync_contract_docs_tests.json +2 -1
- package/catalog/policies/policy.conflict.priority_ladder.json +2 -1
- package/catalog/policies/policy.contract.no_invented_facts.json +93 -0
- package/catalog/policies/policy.dep.admission_six_dimension_check.json +2 -1
- package/catalog/policies/policy.dep.build_path_supply_chain.json +93 -0
- package/catalog/policies/policy.dep.change_surface_review.json +2 -1
- package/catalog/policies/policy.dep.introduction_review.json +2 -1
- package/catalog/policies/policy.dep.no_untrusted_source_no_lock_bypass.json +92 -0
- package/catalog/policies/policy.dep.time_boxed_urgent_exception.json +91 -0
- package/catalog/policies/policy.deploy.no_dev_env_as_production_fact.json +91 -0
- package/catalog/policies/policy.deploy.operational_capabilities.json +93 -0
- package/catalog/policies/policy.deploy.runtime_fact_record.json +97 -0
- package/catalog/policies/policy.derived.single_implementation.json +2 -1
- package/catalog/policies/policy.err.failure_five_part_mapping.json +101 -0
- package/catalog/policies/policy.err.no_internal_detail_exposure.json +97 -0
- package/catalog/policies/policy.err.published_code_immutable.json +98 -0
- package/catalog/policies/policy.evid.acceptance_binds_verifiable_evidence.json +92 -0
- package/catalog/policies/policy.evid.no_silent_gate_removal.json +90 -0
- package/catalog/policies/policy.evid.no_unverifiable_pass.json +92 -0
- package/catalog/policies/policy.flag.cleanup_after_full_rollout.json +94 -0
- package/catalog/policies/policy.flag.consistent_off_state.json +92 -0
- package/catalog/policies/policy.flag.kill_switch.json +91 -0
- package/catalog/policies/policy.flag.lifecycle_metadata.json +93 -0
- package/catalog/policies/policy.flag.not_a_permission.json +92 -0
- package/catalog/policies/policy.gate.p0_non_bypassable.json +92 -0
- package/catalog/policies/policy.gate.risk_factors_confirmed.json +93 -0
- package/catalog/policies/policy.guard.no_check_weakening.json +92 -0
- package/catalog/policies/policy.integration.call_definition_minimum.json +95 -0
- package/catalog/policies/policy.integration.fault_containment.json +94 -0
- package/catalog/policies/policy.job.lifecycle_definition.json +96 -0
- package/catalog/policies/policy.job.no_unmanaged_execution.json +92 -0
- package/catalog/policies/policy.job.operational_features.json +93 -0
- package/catalog/policies/policy.obs.actionable_signals.json +93 -0
- package/catalog/policies/policy.obs.alert_with_owner.json +91 -0
- package/catalog/policies/policy.obs.context_field_baseline.json +91 -0
- package/catalog/policies/policy.obs.correlation_context_minimum.json +2 -1
- package/catalog/policies/policy.obs.no_sensitive_or_unbounded_logging.json +92 -0
- package/catalog/policies/policy.obs.no_sensitive_raw_values.json +93 -0
- package/catalog/policies/policy.obs.rum_dimension_whitelist.json +2 -1
- package/catalog/policies/policy.obs.signal_change_impact.json +91 -0
- package/catalog/policies/policy.obs.source_map_access_control.json +92 -0
- package/catalog/policies/policy.obs.telemetry_lifecycle_declared.json +93 -0
- package/catalog/policies/policy.obs.trace_correlation.json +91 -0
- package/catalog/policies/policy.perf.budget_change_retest.json +91 -0
- package/catalog/policies/policy.perf.evidence_binding.json +95 -0
- package/catalog/policies/policy.perf.observation_dimensions.json +94 -0
- package/catalog/policies/policy.proc.checklist_change_policy.json +91 -0
- package/catalog/policies/policy.proc.pre_code_declaration.json +2 -1
- package/catalog/policies/policy.proc.scope_drift_reclassify.json +91 -0
- package/catalog/policies/policy.prv.processing_scope_re_review.json +97 -0
- package/catalog/policies/policy.prv.sensitive_data_six_facts.json +102 -0
- package/catalog/policies/policy.registry.human_fields_validated_decorrelated.json +93 -0
- package/catalog/policies/policy.rel.no_irreversible_unmonitored_full_release.json +91 -0
- package/catalog/policies/policy.rel.observability_before_ship.json +91 -0
- package/catalog/policies/policy.rel.pre_release_confirmation.json +2 -1
- package/catalog/policies/policy.rel.process_change_needs_drill_audit.json +91 -0
- package/catalog/policies/policy.rel.traceable_build.json +93 -0
- package/catalog/policies/policy.role.domain_decision_authority.json +2 -1
- package/catalog/policies/policy.role.human_signs_for_ai.json +93 -0
- package/catalog/policies/policy.sec.authn_policy_unified.json +91 -0
- package/catalog/policies/policy.sec.no_client_side_trust.json +92 -0
- package/catalog/policies/policy.sec.no_longterm_security_disable.json +91 -0
- package/catalog/policies/policy.sec.no_script_readable_credentials.json +91 -0
- package/catalog/policies/policy.sec.no_secrets_in_client_surface.json +91 -0
- package/catalog/policies/policy.sec.relaxation_approval.json +92 -0
- package/catalog/policies/policy.sec.security_relaxation_gate.json +92 -0
- package/catalog/policies/policy.sec.third_party_execution_register.json +2 -1
- package/catalog/policies/policy.sec.trust_boundary_enforcement.json +93 -0
- package/catalog/policies/policy.sec.upload_download_server_recheck.json +91 -0
- package/catalog/policies/policy.sec.url_source_allowlist.json +91 -0
- package/catalog/policies/policy.spec.admission_criteria.json +2 -1
- package/catalog/policies/policy.spec.derived_view_regeneration.json +2 -1
- package/catalog/policies/policy.spec.draft_not_baseline.json +2 -1
- package/catalog/policies/policy.spec.family_conflict_precedence.json +93 -0
- package/catalog/policies/policy.spec.file_structure_contract.json +2 -1
- package/catalog/policies/policy.spec.freeze_before_use.json +93 -0
- package/catalog/policies/policy.spec.metadata_required.json +2 -1
- package/catalog/policies/policy.spec.post_dev_backfill_classify.json +2 -1
- package/catalog/policies/policy.spec.primary_source_basis.json +93 -0
- package/catalog/policies/policy.spec.procedural_record_not_surrogate.json +2 -1
- package/catalog/policies/policy.spec.semantic_identity.json +2 -1
- package/catalog/policies/policy.spec.unresolved_ledger_gate.json +2 -1
- package/catalog/policies/policy.stack.derived_store_not_authority.json +93 -0
- package/catalog/policies/policy.stack.dual_web_stack_boundary.json +93 -0
- package/catalog/policies/policy.stack.entry_chain_recorded.json +93 -0
- package/catalog/policies/policy.stack.entry_limits_aligned.json +94 -0
- package/catalog/policies/policy.stack.local_form_not_prod_fact.json +93 -0
- package/catalog/policies/policy.stack.multi_datastore_ownership.json +93 -0
- package/catalog/policies/policy.stack.no_implicit_selection.json +2 -1
- package/catalog/policies/policy.stack.persistence_coexistence_scope.json +93 -0
- package/catalog/policies/policy.stack.toolchain_versions_pinned.json +95 -0
- package/catalog/policies/policy.stack.upgrade_compat_verified.json +93 -0
- package/catalog/policies/policy.struct.module_entry_dependency_declared.json +92 -0
- package/catalog/policies/policy.struct.no_unexplained_top_level_dir.json +91 -0
- package/catalog/policies/policy.struct.reuse_proven_structure.json +91 -0
- package/catalog/policies/policy.test.control_nondeterminism_keep_diagnosis.json +91 -0
- package/catalog/policies/policy.test.isolation_and_cleanup.json +93 -0
- package/catalog/policies/policy.test.no_synthetic_stability.json +92 -0
- package/catalog/policies/policy.test.pyramid_and_ci_matrix.json +92 -0
- package/catalog/policies/policy.test.removal_justification.json +91 -0
- package/catalog/policies/policy.test.removal_needs_substitute_evidence.json +91 -0
- package/catalog/policies/policy.test.risk_driven_plan.json +92 -0
- package/catalog/policies/policy.test.stable_observable_assertions.json +92 -0
- package/catalog/policies/policy.tool.discoverable_toolchain.json +92 -0
- package/catalog/policies/policy.tool.no_hand_edit_generated_no_ci_drift.json +91 -0
- package/catalog/policies/policy.tool.no_vendored_body_edits.json +94 -0
- package/catalog/policies/policy.tool.scoped_scan_boundary.json +2 -1
- package/catalog/policies/policy.tool.upgrade_verify_lock_rollback.json +92 -0
- package/catalog/policies/policy.web.api.auth_app_client_split.json +2 -1
- package/catalog/policies/policy.web.api.client_change_impact.json +2 -1
- package/catalog/policies/policy.web.api.domain_api_only.json +2 -1
- package/catalog/policies/policy.web.api.error_normalization.json +2 -1
- package/catalog/policies/policy.web.api.generated_client.json +2 -1
- package/catalog/policies/policy.web.api.late_result_guard.json +2 -1
- package/catalog/policies/policy.web.api.mutation_idempotency.json +2 -1
- package/catalog/policies/policy.web.api.no_network_optimism.json +2 -1
- package/catalog/policies/policy.web.api.query_cancel_stale_drop.json +2 -1
- package/catalog/policies/policy.web.api.request_infrastructure.json +2 -1
- package/catalog/policies/policy.web.api.retry_discipline.json +2 -1
- package/catalog/policies/policy.web.api.session_recovery_split.json +2 -1
- package/catalog/policies/policy.web.api.single_http_client.json +2 -1
- package/catalog/policies/policy.web.api.single_loading_source.json +2 -1
- package/catalog/policies/policy.web.api.transport_vs_business.json +2 -1
- package/catalog/policies/policy.web.api.trusted_endpoint_source.json +2 -1
- package/catalog/policies/policy.web.api.typed_domain_naming.json +2 -1
- package/catalog/policies/policy.web.arch.layer_isolation.json +2 -1
- package/catalog/policies/policy.web.arch.naming_conventions.json +2 -1
- package/catalog/policies/policy.web.arch.public_api_barrel.json +2 -1
- package/catalog/policies/policy.web.chg.controlled_change_triggers.json +2 -1
- package/catalog/policies/policy.web.comp.no_trivial_or_god_component.json +91 -0
- package/catalog/policies/policy.web.comp.public_contract_completeness.json +93 -0
- package/catalog/policies/policy.web.copy.action_object_clarity.json +92 -0
- package/catalog/policies/policy.web.copy.enumerable_placement.json +91 -0
- package/catalog/policies/policy.web.copy.error_next_step.json +92 -0
- package/catalog/policies/policy.web.copy.suppression_ledger_discipline.json +2 -1
- package/catalog/policies/policy.web.grid.column_schema_fields.json +2 -1
- package/catalog/policies/policy.web.grid.config_isolation.json +2 -1
- package/catalog/policies/policy.web.grid.freeze_key_columns.json +2 -1
- package/catalog/policies/policy.web.grid.interaction_registry.json +2 -1
- package/catalog/policies/policy.web.grid.keyboard_clipboard.json +2 -1
- package/catalog/policies/policy.web.grid.schema_driven_shell.json +2 -1
- package/catalog/policies/policy.web.grid.schema_versioning.json +2 -1
- package/catalog/policies/policy.web.grid.server_ops_virtualization.json +2 -1
- package/catalog/policies/policy.web.grid.shell_change_matrix.json +2 -1
- package/catalog/policies/policy.web.grid.width_fix_ladder.json +2 -1
- package/catalog/policies/policy.web.handoff.state_matrix_full.json +94 -0
- package/catalog/policies/policy.web.i18n.copy_key_discipline.json +92 -0
- package/catalog/policies/policy.web.i18n.raw_value_for_compute.json +91 -0
- package/catalog/policies/policy.web.page.region_consistency.json +93 -0
- package/catalog/policies/policy.web.perf.budget_skeleton.json +2 -1
- package/catalog/policies/policy.web.style.ownership_matrix.json +2 -1
- package/catalog/policies/policy.web.track.attempt_result_correlation.json +91 -0
- package/catalog/policies/policy.web.track.consent_lifecycle.json +2 -1
- package/catalog/policies/policy.web.track.no_synthetic_actions.json +92 -0
- package/catalog/policies/policy.web.track.privacy_default_deny.json +2 -1
- package/catalog/policies/policy.web.track.stable_event_keys.json +2 -1
- package/catalog/policies/policy.web.track.typed_client_validation.json +91 -0
- package/catalog/policies/policy.web.uiux.provider_evidence_not_business_truth.json +2 -1
- package/catalog/policies/policy.wf.no_planned_as_verified.json +91 -0
- package/catalog/policies/policy.wf.task_facts_preconfirm.json +94 -0
- package/catalog/policies/profile.baseline.java_enterprise_default.json +96 -0
- package/catalog/sensors/sensor.browser.deterministic.json +2 -1
- package/catalog/sensors/sensor.browser.interactive.json +2 -1
- package/catalog/sensors/sensor.build.static.json +2 -1
- package/catalog/sensors/sensor.contract.conformance.json +2 -1
- package/catalog/sensors/sensor.performance.budget.json +2 -1
- package/catalog/sensors/sensor.production.metric.json +2 -1
- package/catalog/tools/seed_b6b_frontend.py +1424 -0
- package/catalog/tools/seed_b6c_backend.py +1495 -0
- package/catalog/tools/seed_b6d_baseline.py +620 -0
- package/catalog/tools/seed_b6e_evidence.py +1305 -0
- package/catalog/tools/seed_d3_review.py +1105 -0
- package/catalog/tools/seed_v06_batch2_materials.py +27 -18
- package/dist/bin.js +23026 -16635
- package/package.json +2 -1
- package/seeds/baseline/backend/api-contract.md +26 -0
- package/seeds/baseline/backend/architecture.md +31 -0
- package/seeds/baseline/backend/data-access.md +31 -0
- package/seeds/baseline/backend/directory-structure.md +11 -0
- package/seeds/baseline/backend/integration-runtime.md +21 -0
- package/seeds/baseline/backend/quality.md +31 -0
- package/seeds/baseline/backend/stack.yaml +13 -0
- package/seeds/baseline/backend/transaction-concurrency.md +26 -0
- package/seeds/baseline/data/lineage.md +11 -0
- package/seeds/baseline/data/migration.md +11 -0
- package/seeds/baseline/data/model.md +31 -0
- package/seeds/baseline/data/precision-units.md +31 -0
- package/seeds/baseline/data/quality.md +31 -0
- package/seeds/baseline/frontend/api-and-error.md +21 -0
- package/seeds/baseline/frontend/architecture.md +26 -0
- package/seeds/baseline/frontend/design-system.md +21 -0
- package/seeds/baseline/frontend/directory-structure.md +16 -0
- package/seeds/baseline/frontend/quality.md +26 -0
- package/seeds/baseline/frontend/stack.yaml +17 -0
- package/seeds/baseline/frontend/state-and-data.md +26 -0
- package/seeds/baseline/manifest.yaml +32 -0
- package/seeds/baseline/platform/delivery.md +36 -0
- package/seeds/baseline/platform/environment.md +11 -0
- package/seeds/baseline/platform/observability.md +31 -0
- package/seeds/baseline/platform/security.md +26 -0
- package/seeds/manifest.json +2006 -0
- package/seeds/specs/evidence/accessibility.md +89 -0
- package/seeds/specs/evidence/architecture.md +89 -0
- package/seeds/specs/evidence/browser-e2e.md +91 -0
- package/seeds/specs/evidence/build.md +91 -0
- package/seeds/specs/evidence/business-acceptance.md +89 -0
- package/seeds/specs/evidence/complexity-crap.md +97 -0
- package/seeds/specs/evidence/contract.md +89 -0
- package/seeds/specs/evidence/coverage.md +91 -0
- package/seeds/specs/evidence/data-migration.md +91 -0
- package/seeds/specs/evidence/dead-code-duplicate.md +89 -0
- package/seeds/specs/evidence/dependency-supply-chain.md +89 -0
- package/seeds/specs/evidence/index.md +55 -0
- package/seeds/specs/evidence/mutation.md +89 -0
- package/seeds/specs/evidence/performance.md +89 -0
- package/seeds/specs/evidence/release.md +91 -0
- package/seeds/specs/evidence/runtime-observability.md +91 -0
- package/seeds/specs/evidence/security.md +89 -0
- package/seeds/specs/evidence/typecheck-lint.md +91 -0
- package/seeds/specs/evidence/unit-component-integration.md +91 -0
- package/seeds/specs/evidence/visual-regression.md +89 -0
- package/seeds/specs/hard/backend/01-architecture-governance-protocol.md +68 -0
- package/seeds/specs/hard/backend/02-project-structure-governance-protocol.md +68 -0
- package/seeds/specs/hard/backend/03-directory-boundary-protocol.md +68 -0
- package/seeds/specs/hard/backend/04-layering-architecture-protocol.md +68 -0
- package/seeds/specs/hard/backend/05-task-workflow-protocol.md +68 -0
- package/seeds/specs/hard/backend/06-ai-generated-code-protocol.md +68 -0
- package/seeds/specs/hard/backend/07-evidence-acceptance-protocol.md +68 -0
- package/seeds/specs/hard/backend/08-contract-change-protocol.md +68 -0
- package/seeds/specs/hard/backend/09-role-responsibility-protocol.md +68 -0
- package/seeds/specs/hard/backend/10-security-protocol.md +68 -0
- package/seeds/specs/hard/backend/11-environment-configuration-protocol.md +67 -0
- package/seeds/specs/hard/backend/12-api-contract-protocol.md +68 -0
- package/seeds/specs/hard/backend/13-privacy-data-lifecycle-protocol.md +68 -0
- package/seeds/specs/hard/backend/14-business-rules-state-protocol.md +68 -0
- package/seeds/specs/hard/backend/15-data-model-protocol.md +68 -0
- package/seeds/specs/hard/backend/16-error-code-protocol.md +68 -0
- package/seeds/specs/hard/backend/17-permission-authorization-protocol.md +68 -0
- package/seeds/specs/hard/backend/18-database-schema-migration-protocol.md +68 -0
- package/seeds/specs/hard/backend/19-query-index-sql-protocol.md +68 -0
- package/seeds/specs/hard/backend/20-transaction-boundary-protocol.md +68 -0
- package/seeds/specs/hard/backend/21-concurrency-locking-protocol.md +68 -0
- package/seeds/specs/hard/backend/22-idempotency-protocol.md +68 -0
- package/seeds/specs/hard/backend/23-cache-redis-consistency-protocol.md +68 -0
- package/seeds/specs/hard/backend/24-external-integration-resilience-protocol.md +68 -0
- package/seeds/specs/hard/backend/25-async-job-scheduler-protocol.md +68 -0
- package/seeds/specs/hard/backend/26-engineering-tooling-protocol.md +68 -0
- package/seeds/specs/hard/backend/27-dependency-supply-chain-protocol.md +68 -0
- package/seeds/specs/hard/backend/28-testing-protocol.md +68 -0
- package/seeds/specs/hard/backend/29-observability-logging-tracing-protocol.md +68 -0
- package/seeds/specs/hard/backend/30-performance-capacity-protocol.md +68 -0
- package/seeds/specs/hard/backend/31-runtime-deployment-protocol.md +68 -0
- package/seeds/specs/hard/backend/32-release-versioning-rollback-protocol.md +68 -0
- package/seeds/specs/hard/backend/index.md +177 -0
- package/seeds/specs/hard/frontend/01-development-checklist-protocol.md +86 -0
- package/seeds/specs/hard/frontend/02-ai-generated-code-protocol.md +82 -0
- package/seeds/specs/hard/frontend/03-acceptance-gate-protocol.md +86 -0
- package/seeds/specs/hard/frontend/04-security-protocol.md +283 -0
- package/seeds/specs/hard/frontend/05-environment-configuration-protocol.md +80 -0
- package/seeds/specs/hard/frontend/06-change-governance-protocol.md +90 -0
- package/seeds/specs/hard/frontend/07-frontend-backend-communication-protocol.md +219 -0
- package/seeds/specs/hard/frontend/08-role-responsibility-protocol.md +80 -0
- package/seeds/specs/hard/frontend/09-module-boundary-protocol.md +81 -0
- package/seeds/specs/hard/frontend/10-engineering-tooling-protocol.md +89 -0
- package/seeds/specs/hard/frontend/11-dependency-package-management-protocol.md +87 -0
- package/seeds/specs/hard/frontend/12-business-rules-protocol.md +79 -0
- package/seeds/specs/hard/frontend/13-monetary-precision-protocol.md +81 -0
- package/seeds/specs/hard/frontend/14-data-model-protocol.md +85 -0
- package/seeds/specs/hard/frontend/15-request-api-protocol.md +87 -0
- package/seeds/specs/hard/frontend/16-error-handling-protocol.md +79 -0
- package/seeds/specs/hard/frontend/17-permission-protocol.md +79 -0
- package/seeds/specs/hard/frontend/18-state-management-protocol.md +88 -0
- package/seeds/specs/hard/frontend/19-cache-protocol.md +79 -0
- package/seeds/specs/hard/frontend/20-testing-protocol.md +88 -0
- package/seeds/specs/hard/frontend/21-design-system-protocol.md +79 -0
- package/seeds/specs/hard/frontend/22-theme-protocol.md +79 -0
- package/seeds/specs/hard/frontend/23-accessibility-protocol.md +189 -0
- package/seeds/specs/hard/frontend/24-component-protocol.md +80 -0
- package/seeds/specs/hard/frontend/25-page-structure-protocol.md +79 -0
- package/seeds/specs/hard/frontend/26-style-layout-protocol.md +80 -0
- package/seeds/specs/hard/frontend/27-rendering-state-protocol.md +81 -0
- package/seeds/specs/hard/frontend/28-form-protocol.md +88 -0
- package/seeds/specs/hard/frontend/29-routing-url-protocol.md +79 -0
- package/seeds/specs/hard/frontend/30-data-grid-protocol.md +83 -0
- package/seeds/specs/hard/frontend/31-performance-protocol.md +137 -0
- package/seeds/specs/hard/frontend/32-file-import-export-protocol.md +80 -0
- package/seeds/specs/hard/frontend/33-release-versioning-protocol.md +79 -0
- package/seeds/specs/hard/frontend/34-monitoring-logging-protocol.md +128 -0
- package/seeds/specs/hard/frontend/35-mock-protocol.md +97 -0
- package/seeds/specs/hard/frontend/36-feature-flag-protocol.md +79 -0
- package/seeds/specs/hard/frontend/37-browser-device-compatibility-protocol.md +83 -0
- package/seeds/specs/hard/frontend/38-internationalization-protocol.md +243 -0
- package/seeds/specs/hard/frontend/39-copywriting-protocol.md +79 -0
- package/seeds/specs/hard/frontend/40-analytics-protocol.md +98 -0
- package/seeds/specs/hard/frontend/41-design-handoff-protocol.md +80 -0
- package/seeds/specs/hard/frontend/42-browser-runtime-lifecycle-protocol.md +86 -0
- package/seeds/specs/hard/frontend/43-time-temporal-protocol.md +86 -0
- package/seeds/specs/hard/frontend/44-privacy-data-lifecycle-protocol.md +87 -0
- package/seeds/specs/hard/frontend/45-browser-storage-protocol.md +87 -0
- package/seeds/specs/hard/frontend/index.md +308 -0
- package/seeds/specs/hard/stacks/java/index.md +20 -0
- package/seeds/specs/hard/stacks/java/java-language-overlay.md +35 -0
- package/seeds/specs/hard/stacks/jpa/index.md +20 -0
- package/seeds/specs/hard/stacks/jpa/jpa-persistence-overlay.md +35 -0
- package/seeds/specs/hard/stacks/kubernetes-ingress/index.md +20 -0
- package/seeds/specs/hard/stacks/kubernetes-ingress/kubernetes-ingress-overlay.md +35 -0
- package/seeds/specs/hard/stacks/messaging/index.md +20 -0
- package/seeds/specs/hard/stacks/messaging/messaging-reliability-overlay.md +35 -0
- package/seeds/specs/hard/stacks/mybatis/index.md +20 -0
- package/seeds/specs/hard/stacks/mybatis/mybatis-persistence-overlay.md +35 -0
- package/seeds/specs/hard/stacks/mysql/index.md +20 -0
- package/seeds/specs/hard/stacks/mysql/mysql-database-overlay.md +35 -0
- package/seeds/specs/hard/stacks/nginx/index.md +20 -0
- package/seeds/specs/hard/stacks/nginx/nginx-proxy-overlay.md +35 -0
- package/seeds/specs/hard/stacks/postgresql/index.md +20 -0
- package/seeds/specs/hard/stacks/postgresql/postgresql-database-overlay.md +35 -0
- package/seeds/specs/hard/stacks/redis/index.md +20 -0
- package/seeds/specs/hard/stacks/redis/redis-cache-overlay.md +35 -0
- package/seeds/specs/hard/stacks/spring-batch/index.md +20 -0
- package/seeds/specs/hard/stacks/spring-batch/spring-batch-job-overlay.md +35 -0
- package/seeds/specs/hard/stacks/spring-boot/index.md +20 -0
- package/seeds/specs/hard/stacks/spring-boot/spring-boot-application-overlay.md +35 -0
- package/seeds/specs/hard/stacks/spring-mvc/index.md +20 -0
- package/seeds/specs/hard/stacks/spring-mvc/spring-mvc-web-overlay.md +35 -0
- package/seeds/specs/hard/stacks/spring-webflux/index.md +20 -0
- package/seeds/specs/hard/stacks/spring-webflux/spring-webflux-reactive-overlay.md +35 -0
- package/seeds/specs/hard/stacks/tomcat/index.md +20 -0
- package/seeds/specs/hard/stacks/tomcat/tomcat-runtime-overlay.md +35 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world);新 id 域段待登记:PERF",
|
|
5
|
+
"proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+25+9 条同因同请,合并进同一 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": "B6c BE 播种移植(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": "BE-G4",
|
|
16
|
+
"candidate_id": "POLICY.PERF.EVIDENCE_BINDING",
|
|
17
|
+
"density_rank": "UNIVERSAL",
|
|
18
|
+
"density_score": 33.06,
|
|
19
|
+
"pool_statement_sha16": "52460200ce0b7697",
|
|
20
|
+
"curated_rule": "B6c 分母(BE universal 33:32 编号协议 + index)required 池(ELIGIBLE 未物化 + 卡层锚落 MUST/MUST NOT 且与 MASTer 行锚交叉验证)按池密度序取前 22 + advisory 池(SHOULD 源 backlog policy 卡 + 行锚全落建议段闭包)按同公式密度序取前 3 = 25(D5 上限/批内执行);UNIVERSAL + UNIVERSAL_POLICY + 无 uncertainty + 非 project_scope + 非重复",
|
|
21
|
+
"denominator": "MASTer(池卡 source 锚)"
|
|
22
|
+
},
|
|
23
|
+
"x-b6-porting": {
|
|
24
|
+
"status": "PROPOSAL",
|
|
25
|
+
"batch": "B6C",
|
|
26
|
+
"human_review_required": true,
|
|
27
|
+
"classification_face": "policy",
|
|
28
|
+
"enforcement_axis": {
|
|
29
|
+
"source_sections": [
|
|
30
|
+
"MUST"
|
|
31
|
+
],
|
|
32
|
+
"rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
|
|
33
|
+
"asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
|
|
34
|
+
},
|
|
35
|
+
"extra_master_sections": [],
|
|
36
|
+
"denominator": "vendor",
|
|
37
|
+
"vendor_pin": {
|
|
38
|
+
"path": "pomaster/components/backend-hard-spec/assets/universal/30-performance-capacity-protocol.md",
|
|
39
|
+
"sha256": "b575dd07e4bb6def646acb55c3d62d086a9fd12035b2ab359ec353bf443773e5",
|
|
40
|
+
"bytes": 1326
|
|
41
|
+
},
|
|
42
|
+
"seeded_spec": ".pomaster/specs/hard/backend/30-performance-capacity-protocol.md",
|
|
43
|
+
"seed_manifest": "packages/cli/seeds/manifest.json"
|
|
44
|
+
},
|
|
45
|
+
"id": "POLICY.PERF.EVIDENCE_BINDING",
|
|
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
|
+
"performance claim binding",
|
|
59
|
+
"load model",
|
|
60
|
+
"data scale",
|
|
61
|
+
"environment",
|
|
62
|
+
"tested version",
|
|
63
|
+
"statistics caliber"
|
|
64
|
+
],
|
|
65
|
+
"applies_when": {
|
|
66
|
+
"lane": "any",
|
|
67
|
+
"condition": "给出任何性能结论",
|
|
68
|
+
"applicability_note": "给出任何性能结论"
|
|
69
|
+
},
|
|
70
|
+
"enforcement": "required_when_applicable",
|
|
71
|
+
"authority": {
|
|
72
|
+
"owner": "HUMAN_OWNER",
|
|
73
|
+
"delegates": [],
|
|
74
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
75
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
76
|
+
},
|
|
77
|
+
"origin": "ingested",
|
|
78
|
+
"origin_note": "B6c BE 播种移植物化;statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
79
|
+
"sources": [
|
|
80
|
+
{
|
|
81
|
+
"type": "design_seed",
|
|
82
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G4.yaml",
|
|
83
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
84
|
+
"locator": {
|
|
85
|
+
"candidate": "POLICY.PERF.EVIDENCE_BINDING",
|
|
86
|
+
"source_protocol": ".trellis/spec/backend/30-performance-capacity-protocol.md",
|
|
87
|
+
"lines": ""
|
|
88
|
+
},
|
|
89
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"review_notes": [
|
|
93
|
+
"性能结论证据绑定在既有 193 条中无对应条目(B6b-II REL.OBSERVABILITY_BEFORE_SHIP 管监控前置物,不管结论要素绑定),零语义重复。"
|
|
94
|
+
]
|
|
95
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
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-G4",
|
|
9
|
+
"candidate_id": "POLICY.PERF.OBSERVATION_DIMENSIONS",
|
|
10
|
+
"pool_statement_sha16": "facd912d7d822dc0",
|
|
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
|
+
"SHOULD"
|
|
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/30-performance-capacity-protocol.md",
|
|
30
|
+
"sha256": "b575dd07e4bb6def646acb55c3d62d086a9fd12035b2ab359ec353bf443773e5",
|
|
31
|
+
"bytes": 1326
|
|
32
|
+
},
|
|
33
|
+
"seeded_spec": ".pomaster/specs/hard/backend/30-performance-capacity-protocol.md",
|
|
34
|
+
"seed_manifest": "packages/cli/seeds/manifest.json",
|
|
35
|
+
"d3_review": {
|
|
36
|
+
"excluded_from_batch": "B6C",
|
|
37
|
+
"exclusion_reason_at_seed": "池行行锚缺席(锚证据不足,保守排除待复核)",
|
|
38
|
+
"adjudication": "D3 逐卡复核 R2 轮(Owner 2026-09-05 裁定 D3=逐卡复核,裁定批 G 落地 2026-09-05):本卡原属 B6C 保守排除留池(排除理由:池行行锚缺席(锚证据不足,保守排除待复核));复核补锚回 MASTer 源取得行级证据,锚段=SHOULD,按强度入册(SHOULD 行锚 advisory 原样(池判一致;复核行锚补证))",
|
|
39
|
+
"anchor_evidence": "MASTer 30-performance-capacity-protocol.md L31-L33「## SHOULD」",
|
|
40
|
+
"pool_enforcement_at_seed": "advisory"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"id": "POLICY.PERF.OBSERVATION_DIMENSIONS",
|
|
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": "性能观测宜同时覆盖尾部时延、错误率、资源占用、排队深度、背压信号与依赖瓶颈六个维度。",
|
|
55
|
+
"statement_en_keywords": [
|
|
56
|
+
"tail latency",
|
|
57
|
+
"error rate",
|
|
58
|
+
"resource usage",
|
|
59
|
+
"queueing depth",
|
|
60
|
+
"backpressure",
|
|
61
|
+
"dependency bottleneck"
|
|
62
|
+
],
|
|
63
|
+
"applies_when": {
|
|
64
|
+
"lane": "any",
|
|
65
|
+
"condition": "性能观测维度设计",
|
|
66
|
+
"applicability_note": "性能观测维度设计"
|
|
67
|
+
},
|
|
68
|
+
"enforcement": "advisory",
|
|
69
|
+
"authority": {
|
|
70
|
+
"owner": "HUMAN_OWNER",
|
|
71
|
+
"delegates": [],
|
|
72
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
73
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
74
|
+
},
|
|
75
|
+
"origin": "ingested",
|
|
76
|
+
"origin_note": "裁定批 G/D3-R2 D3 逐卡复核物化·R2 轮(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
77
|
+
"sources": [
|
|
78
|
+
{
|
|
79
|
+
"type": "design_seed",
|
|
80
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G4.yaml",
|
|
81
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
82
|
+
"locator": {
|
|
83
|
+
"candidate": "POLICY.PERF.OBSERVATION_DIMENSIONS",
|
|
84
|
+
"source_protocol": ".trellis/spec/backend/30-performance-capacity-protocol.md",
|
|
85
|
+
"lines": "L31-L33"
|
|
86
|
+
},
|
|
87
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"review_notes": [
|
|
91
|
+
"尾延迟/错误率/资源/排队/背压/依赖瓶颈六维观测在既有 228 条中无对应条目;与 POLICY.PERF.EVIDENCE_BINDING、BUDGET_CHANGE_RETEST 不同轴——彼管证据绑定与变更复测,本管观测维度完备性,互引。",
|
|
92
|
+
"D3-R2 补锚:MASTer 30 L31-33(SHOULD 段),advisory 原样(池判一致)。"
|
|
93
|
+
]
|
|
94
|
+
}
|
|
@@ -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.PROC.CHECKLIST_CHANGE_POLICY",
|
|
17
|
+
"density_rank": null,
|
|
18
|
+
"density_score": 33.0,
|
|
19
|
+
"pool_statement_sha16": "81dc9f22d1c9d513",
|
|
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
|
+
"Change Policy"
|
|
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/01-development-checklist-protocol.md",
|
|
38
|
+
"sha256": "fa8914b29dbf7af25c8128aa1b8936fd658e37854e0a4f457175e2e3c82c3a03",
|
|
39
|
+
"bytes": 2691
|
|
40
|
+
},
|
|
41
|
+
"seeded_spec": ".pomaster/specs/hard/frontend/01-development-checklist-protocol.md",
|
|
42
|
+
"seed_manifest": "packages/cli/seeds/manifest.json"
|
|
43
|
+
},
|
|
44
|
+
"id": "POLICY.PROC.CHECKLIST_CHANGE_POLICY",
|
|
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
|
+
"checklist change policy",
|
|
58
|
+
"trigger validation failure action",
|
|
59
|
+
"downgrade needs approval"
|
|
60
|
+
],
|
|
61
|
+
"applies_when": {
|
|
62
|
+
"lane": "any",
|
|
63
|
+
"condition": "维护检查清单本身时",
|
|
64
|
+
"applicability_note": "维护检查清单本身时"
|
|
65
|
+
},
|
|
66
|
+
"enforcement": "advisory",
|
|
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.PROC.CHECKLIST_CHANGE_POLICY",
|
|
82
|
+
"source_protocol": ".trellis/spec/frontend/01-development-checklist-protocol.md",
|
|
83
|
+
"lines": "L74"
|
|
84
|
+
},
|
|
85
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"review_notes": [
|
|
89
|
+
"advisory 物化(Change Policy 源):对协议自身检查清单的元规则(新增条目须带触发/验证/失败动作),源段 Change Policy——advisory 落点;enforcement 轴断言钉。"
|
|
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);新 id 域段待登记:PROC",
|
|
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,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.PROC.SCOPE_DRIFT_RECLASSIFY",
|
|
17
|
+
"density_rank": null,
|
|
18
|
+
"density_score": 32.38,
|
|
19
|
+
"pool_statement_sha16": "b8a0ab353b28bb5b",
|
|
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/01-development-checklist-protocol.md",
|
|
38
|
+
"sha256": "fa8914b29dbf7af25c8128aa1b8936fd658e37854e0a4f457175e2e3c82c3a03",
|
|
39
|
+
"bytes": 2691
|
|
40
|
+
},
|
|
41
|
+
"seeded_spec": ".pomaster/specs/hard/frontend/01-development-checklist-protocol.md",
|
|
42
|
+
"seed_manifest": "packages/cli/seeds/manifest.json"
|
|
43
|
+
},
|
|
44
|
+
"id": "POLICY.PROC.SCOPE_DRIFT_RECLASSIFY",
|
|
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
|
+
"scope drift reclassify",
|
|
58
|
+
"pause and replan",
|
|
59
|
+
"update change classification"
|
|
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.PROC.SCOPE_DRIFT_RECLASSIFY",
|
|
82
|
+
"source_protocol": ".trellis/spec/frontend/01-development-checklist-protocol.md",
|
|
83
|
+
"lines": "L23"
|
|
84
|
+
},
|
|
85
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"review_notes": [
|
|
89
|
+
"范围漂移处置在既有 143 条中无对应条目(POLICY.CHG.* 管已决策变更的过程纪律),零语义重复。"
|
|
90
|
+
]
|
|
91
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "id 域段待登记:PRV(vocab-lock@v0.8-resolved policy_id_domains 32 段未含——PR-0009 后新用域段沿用候选注记先例,词汇表 PR 增补)",
|
|
5
|
+
"proposal": "词汇表 PR 增补新 id 域段至 catalog_layer_vocab.policy_id_domains(与 PR-0009 同轴追加,append-only)",
|
|
6
|
+
"locked_vocab_untouched": true,
|
|
7
|
+
"resolution": "2026-09-05 vocab PR-0010 增补落地(vocab-lock@v0.9-resolved,append-only 纯增量;Owner 2026-09-05 第二轮裁定开放项 2 全做——裁定批 G 收尾批):AUTHZ/PRV/ERR 三 id 域段随 catalog_layer_vocab.policy_id_domains 扩值收编(32→35 段,与 PR-0009 同轴追加,词值零改动);本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
|
|
8
|
+
},
|
|
9
|
+
"x-spec-d-materialization": {
|
|
10
|
+
"status": "PROPOSAL",
|
|
11
|
+
"package": "裁定批 F/D3-R1 排除卡逐卡复核物化(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": "BE-G2",
|
|
16
|
+
"candidate_id": "POLICY.PRV.PROCESSING_SCOPE_RE_REVIEW",
|
|
17
|
+
"pool_statement_sha16": "48782724415098cd",
|
|
18
|
+
"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 归属说明族)",
|
|
19
|
+
"denominator": "MASTer(池卡锚)"
|
|
20
|
+
},
|
|
21
|
+
"x-b6-porting": {
|
|
22
|
+
"status": "PROPOSAL",
|
|
23
|
+
"batch": "D3-R1",
|
|
24
|
+
"human_review_required": true,
|
|
25
|
+
"classification_face": "policy",
|
|
26
|
+
"enforcement_axis": {
|
|
27
|
+
"source_sections": [
|
|
28
|
+
"Change Policy"
|
|
29
|
+
],
|
|
30
|
+
"rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
|
|
31
|
+
"asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
|
|
32
|
+
},
|
|
33
|
+
"extra_master_sections": [],
|
|
34
|
+
"denominator": "vendor",
|
|
35
|
+
"vendor_pin": {
|
|
36
|
+
"path": "pomaster/components/backend-hard-spec/assets/universal/13-privacy-data-lifecycle-protocol.md",
|
|
37
|
+
"sha256": "df20ccb85008f8744ea16db3ea64e54bdf9fd19d7aa3098c45dc44fff94c3d8d",
|
|
38
|
+
"bytes": 1381
|
|
39
|
+
},
|
|
40
|
+
"seeded_spec": ".pomaster/specs/hard/backend/13-privacy-data-lifecycle-protocol.md",
|
|
41
|
+
"seed_manifest": "packages/cli/seeds/manifest.json",
|
|
42
|
+
"d3_review": {
|
|
43
|
+
"excluded_from_batch": "B6C",
|
|
44
|
+
"exclusion_reason_at_seed": "卡层 source=null(锚证据不足),保守排除待复核",
|
|
45
|
+
"adjudication": "D3 逐卡复核(Owner 2026-09-05 裁定 D3=逐卡复核,裁定批 F 落地 2026-09-05):本卡原属 B6C 保守排除留池(排除理由:卡层 source=null(锚证据不足),保守排除待复核);复核补锚回 vendor/MASTer 源取得行级证据,锚段=Change Policy,按强度入册(行内容含「必须」行为规范、Change Policy 段 advisory 落点(强度只降不升))",
|
|
46
|
+
"anchor_evidence": "MASTer 13-privacy-data-lifecycle-protocol.md 57「扩大处理范围或接收方必须重新评审目的、权限与保留规则。」",
|
|
47
|
+
"pool_enforcement_at_seed": "required_when_applicable"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"id": "POLICY.PRV.PROCESSING_SCOPE_RE_REVIEW",
|
|
51
|
+
"kind": "policy",
|
|
52
|
+
"axis_profile": "policy_default",
|
|
53
|
+
"classification": "UNIVERSAL_POLICY",
|
|
54
|
+
"axes": {
|
|
55
|
+
"lifecycle": "PROPOSED",
|
|
56
|
+
"confidence": "UNRESOLVED",
|
|
57
|
+
"evidence": "PLANNED",
|
|
58
|
+
"change": "STABLE"
|
|
59
|
+
},
|
|
60
|
+
"title_zh": "处理扩围重履三评审",
|
|
61
|
+
"statement_zh": "处理范围一旦扩大——更多用途或更多接收方——必须重新履行目的、权限、保留规则三项评审,不得沿用旧结论。",
|
|
62
|
+
"statement_en_keywords": [
|
|
63
|
+
"processing scope expansion",
|
|
64
|
+
"purpose/permission/retention re-review"
|
|
65
|
+
],
|
|
66
|
+
"applies_when": {
|
|
67
|
+
"lane": "backend",
|
|
68
|
+
"condition": "扩大数据处理范围或接收方时",
|
|
69
|
+
"applicability_note": "扩大数据处理范围或接收方时"
|
|
70
|
+
},
|
|
71
|
+
"enforcement": "advisory",
|
|
72
|
+
"authority": {
|
|
73
|
+
"owner": "HUMAN_OWNER",
|
|
74
|
+
"delegates": [],
|
|
75
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
76
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
77
|
+
},
|
|
78
|
+
"origin": "ingested",
|
|
79
|
+
"origin_note": "裁定批 F/D3-R1 D3 逐卡复核物化(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
80
|
+
"sources": [
|
|
81
|
+
{
|
|
82
|
+
"type": "design_seed",
|
|
83
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G2.yaml",
|
|
84
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
85
|
+
"locator": {
|
|
86
|
+
"candidate": "POLICY.PRV.PROCESSING_SCOPE_RE_REVIEW",
|
|
87
|
+
"source_protocol": ".trellis/spec/backend/13-privacy-data-lifecycle-protocol.md",
|
|
88
|
+
"lines": "57"
|
|
89
|
+
},
|
|
90
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"review_notes": [
|
|
94
|
+
"处理范围扩大重评审在既有 228 条中无对应条目;与同批 SENSITIVE_DATA_SIX_FACTS 同协议正交(入场登记 vs 扩围重评审),互引。",
|
|
95
|
+
"Change Policy 锚(MASTer 13 L57)——降 advisory 入册。"
|
|
96
|
+
]
|
|
97
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "id 域段待登记:PRV(vocab-lock@v0.8-resolved policy_id_domains 32 段未含——PR-0009 后新用域段沿用候选注记先例,词汇表 PR 增补)",
|
|
5
|
+
"proposal": "词汇表 PR 增补新 id 域段至 catalog_layer_vocab.policy_id_domains(与 PR-0009 同轴追加,append-only)",
|
|
6
|
+
"locked_vocab_untouched": true,
|
|
7
|
+
"resolution": "2026-09-05 vocab PR-0010 增补落地(vocab-lock@v0.9-resolved,append-only 纯增量;Owner 2026-09-05 第二轮裁定开放项 2 全做——裁定批 G 收尾批):AUTHZ/PRV/ERR 三 id 域段随 catalog_layer_vocab.policy_id_domains 扩值收编(32→35 段,与 PR-0009 同轴追加,词值零改动);本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
|
|
8
|
+
},
|
|
9
|
+
"x-spec-d-materialization": {
|
|
10
|
+
"status": "PROPOSAL",
|
|
11
|
+
"package": "裁定批 F/D3-R1 排除卡逐卡复核物化(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": "BE-G2",
|
|
16
|
+
"candidate_id": "POLICY.PRV.SENSITIVE_DATA_SIX_FACTS",
|
|
17
|
+
"pool_statement_sha16": "7a20895b5400a573",
|
|
18
|
+
"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 归属说明族)",
|
|
19
|
+
"denominator": "MASTer(池卡锚)"
|
|
20
|
+
},
|
|
21
|
+
"x-b6-porting": {
|
|
22
|
+
"status": "PROPOSAL",
|
|
23
|
+
"batch": "D3-R1",
|
|
24
|
+
"human_review_required": true,
|
|
25
|
+
"classification_face": "policy",
|
|
26
|
+
"enforcement_axis": {
|
|
27
|
+
"source_sections": [
|
|
28
|
+
"MUST"
|
|
29
|
+
],
|
|
30
|
+
"rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
|
|
31
|
+
"asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
|
|
32
|
+
},
|
|
33
|
+
"extra_master_sections": [],
|
|
34
|
+
"denominator": "vendor",
|
|
35
|
+
"vendor_pin": {
|
|
36
|
+
"path": "pomaster/components/backend-hard-spec/assets/universal/13-privacy-data-lifecycle-protocol.md",
|
|
37
|
+
"sha256": "df20ccb85008f8744ea16db3ea64e54bdf9fd19d7aa3098c45dc44fff94c3d8d",
|
|
38
|
+
"bytes": 1381
|
|
39
|
+
},
|
|
40
|
+
"seeded_spec": ".pomaster/specs/hard/backend/13-privacy-data-lifecycle-protocol.md",
|
|
41
|
+
"seed_manifest": "packages/cli/seeds/manifest.json",
|
|
42
|
+
"d3_review": {
|
|
43
|
+
"excluded_from_batch": "B6C",
|
|
44
|
+
"exclusion_reason_at_seed": "卡层 source=null(锚证据不足),保守排除待复核",
|
|
45
|
+
"adjudication": "D3 逐卡复核(Owner 2026-09-05 裁定 D3=逐卡复核,裁定批 F 落地 2026-09-05):本卡原属 B6C 保守排除留池(排除理由:卡层 source=null(锚证据不足),保守排除待复核);复核补锚回 vendor/MASTer 源取得行级证据,锚段=MUST,按强度入册(MUST/MUST NOT 行锚 required 原样)",
|
|
46
|
+
"anchor_evidence": "MASTer 13-privacy-data-lifecycle-protocol.md 25「- 敏感数据必须有目的、来源、接收方、保留期、删除触发与访问控制。」",
|
|
47
|
+
"pool_enforcement_at_seed": "required_when_applicable"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"id": "POLICY.PRV.SENSITIVE_DATA_SIX_FACTS",
|
|
51
|
+
"kind": "policy",
|
|
52
|
+
"axis_profile": "policy_default",
|
|
53
|
+
"classification": "UNIVERSAL_POLICY",
|
|
54
|
+
"axes": {
|
|
55
|
+
"lifecycle": "PROPOSED",
|
|
56
|
+
"confidence": "UNRESOLVED",
|
|
57
|
+
"evidence": "PLANNED",
|
|
58
|
+
"change": "STABLE"
|
|
59
|
+
},
|
|
60
|
+
"title_zh": "敏感数据入场六事实登记",
|
|
61
|
+
"statement_zh": "任何被判定为敏感的数据,必须在进入系统前登记六个事实:收集目的、来源、流向的接收方、保留期限、删除的触发条件、访问控制方式。",
|
|
62
|
+
"statement_en_keywords": [
|
|
63
|
+
"sensitive data attributes",
|
|
64
|
+
"purpose",
|
|
65
|
+
"provenance",
|
|
66
|
+
"recipients",
|
|
67
|
+
"retention",
|
|
68
|
+
"deletion trigger",
|
|
69
|
+
"access control"
|
|
70
|
+
],
|
|
71
|
+
"applies_when": {
|
|
72
|
+
"lane": "backend",
|
|
73
|
+
"condition": "收集、存储或流转任何敏感数据前",
|
|
74
|
+
"applicability_note": "收集、存储或流转任何敏感数据前"
|
|
75
|
+
},
|
|
76
|
+
"enforcement": "required_when_applicable",
|
|
77
|
+
"authority": {
|
|
78
|
+
"owner": "HUMAN_OWNER",
|
|
79
|
+
"delegates": [],
|
|
80
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
81
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
82
|
+
},
|
|
83
|
+
"origin": "ingested",
|
|
84
|
+
"origin_note": "裁定批 F/D3-R1 D3 逐卡复核物化(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
85
|
+
"sources": [
|
|
86
|
+
{
|
|
87
|
+
"type": "design_seed",
|
|
88
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G2.yaml",
|
|
89
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
90
|
+
"locator": {
|
|
91
|
+
"candidate": "POLICY.PRV.SENSITIVE_DATA_SIX_FACTS",
|
|
92
|
+
"source_protocol": ".trellis/spec/backend/13-privacy-data-lifecycle-protocol.md",
|
|
93
|
+
"lines": "25"
|
|
94
|
+
},
|
|
95
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"review_notes": [
|
|
99
|
+
"敏感数据六事实登记在既有 228 条中无对应条目(PRV 域段本批新用,待词汇表 PR;B6b-II OBS.NO_SENSITIVE_RAW_VALUES 管遥测载荷不同轴)。",
|
|
100
|
+
"D3b 补锚:MASTer 13-privacy-data-lifecycle-protocol.md L25(MUST 段)。"
|
|
101
|
+
]
|
|
102
|
+
}
|