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)",
|
|
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",
|
|
@@ -0,0 +1,91 @@
|
|
|
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-G1",
|
|
9
|
+
"candidate_id": "POLICY.ARCH.ADR_IMMUTABLE_HISTORY",
|
|
10
|
+
"pool_statement_sha16": "c625fdf153e9ef45",
|
|
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
|
+
"Change Policy"
|
|
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/01-architecture-governance-protocol.md",
|
|
30
|
+
"sha256": "726502f4e5a5dcf2e8076fafa943b33de4b7ab9bd0fc2d8551479b43385e7636",
|
|
31
|
+
"bytes": 1394
|
|
32
|
+
},
|
|
33
|
+
"seeded_spec": ".pomaster/specs/hard/backend/01-architecture-governance-protocol.md",
|
|
34
|
+
"seed_manifest": "packages/cli/seeds/manifest.json",
|
|
35
|
+
"d3_review": {
|
|
36
|
+
"excluded_from_batch": "B6C",
|
|
37
|
+
"exclusion_reason_at_seed": "行锚段映射非 MUST/MUST NOT(池 enforcement 判定矛盾,保守排除待复核)",
|
|
38
|
+
"adjudication": "D3 逐卡复核(Owner 2026-09-05 裁定 D3=逐卡复核,裁定批 F 落地 2026-09-05):本卡原属 B6C 保守排除留池(排除理由:行锚段映射非 MUST/MUST NOT(池 enforcement 判定矛盾,保守排除待复核));复核补锚回 vendor/MASTer 源取得行级证据,锚段=Change Policy,按强度入册(行内容含「必须」行为规范、Change Policy 段 advisory 落点(强度只降不升))",
|
|
39
|
+
"anchor_evidence": "MASTer 01-architecture-governance-protocol.md 57「改变已采用架构必须新增或替代 ADR,不得静默改写历史结论。」",
|
|
40
|
+
"pool_enforcement_at_seed": "required_when_applicable"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"id": "POLICY.ARCH.ADR_IMMUTABLE_HISTORY",
|
|
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
|
+
"immutable decision history",
|
|
57
|
+
"supersede",
|
|
58
|
+
"no silent rewrite"
|
|
59
|
+
],
|
|
60
|
+
"applies_when": {
|
|
61
|
+
"lane": "any",
|
|
62
|
+
"condition": "改变已采用架构时",
|
|
63
|
+
"applicability_note": "改变已采用架构时"
|
|
64
|
+
},
|
|
65
|
+
"enforcement": "advisory",
|
|
66
|
+
"authority": {
|
|
67
|
+
"owner": "HUMAN_OWNER",
|
|
68
|
+
"delegates": [],
|
|
69
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
70
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
71
|
+
},
|
|
72
|
+
"origin": "ingested",
|
|
73
|
+
"origin_note": "裁定批 F/D3-R1 D3 逐卡复核物化(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
74
|
+
"sources": [
|
|
75
|
+
{
|
|
76
|
+
"type": "design_seed",
|
|
77
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G1.yaml",
|
|
78
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
79
|
+
"locator": {
|
|
80
|
+
"candidate": "POLICY.ARCH.ADR_IMMUTABLE_HISTORY",
|
|
81
|
+
"source_protocol": ".trellis/spec/backend/01-architecture-governance-protocol.md",
|
|
82
|
+
"lines": "57"
|
|
83
|
+
},
|
|
84
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"review_notes": [
|
|
88
|
+
"决策记录禁静默改写在既有 228 条中无对应条目;与 kernel decision-graph 冻结纪律(投影指纹 human_touch forbidden)语义呼应不同层。",
|
|
89
|
+
"Change Policy 锚(MASTer 01 L57)——降 advisory 入册。"
|
|
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 域段待登记:ARCH",
|
|
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-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+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-G1",
|
|
16
|
+
"candidate_id": "POLICY.ARCH.NO_CONVENIENCE_OVER_BOUNDARY",
|
|
17
|
+
"density_rank": "UNIVERSAL",
|
|
18
|
+
"density_score": 32.94,
|
|
19
|
+
"pool_statement_sha16": "63fe37b325accbda",
|
|
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 NOT"
|
|
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/01-architecture-governance-protocol.md",
|
|
39
|
+
"sha256": "726502f4e5a5dcf2e8076fafa943b33de4b7ab9bd0fc2d8551479b43385e7636",
|
|
40
|
+
"bytes": 1394
|
|
41
|
+
},
|
|
42
|
+
"seeded_spec": ".pomaster/specs/hard/backend/01-architecture-governance-protocol.md",
|
|
43
|
+
"seed_manifest": "packages/cli/seeds/manifest.json"
|
|
44
|
+
},
|
|
45
|
+
"id": "POLICY.ARCH.NO_CONVENIENCE_OVER_BOUNDARY",
|
|
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
|
+
"no convenience shortcut",
|
|
59
|
+
"boundary analysis",
|
|
60
|
+
"data ownership",
|
|
61
|
+
"deployment constraint"
|
|
62
|
+
],
|
|
63
|
+
"applies_when": {
|
|
64
|
+
"lane": "any",
|
|
65
|
+
"condition": "任何架构相关实现决策",
|
|
66
|
+
"applicability_note": "任何架构相关实现决策"
|
|
67
|
+
},
|
|
68
|
+
"enforcement": "required_when_applicable",
|
|
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": "B6c BE 播种移植物化;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-G1.yaml",
|
|
81
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
82
|
+
"locator": {
|
|
83
|
+
"candidate": "POLICY.ARCH.NO_CONVENIENCE_OVER_BOUNDARY",
|
|
84
|
+
"source_protocol": ".trellis/spec/backend/01-architecture-governance-protocol.md",
|
|
85
|
+
"lines": "29"
|
|
86
|
+
},
|
|
87
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"review_notes": [
|
|
91
|
+
"便利性不得替代边界影响评估在既有 193 条中无对应条目(BOUNDARY.VALIDATE_IN_ENCODE_OUT 管数据边界,非结构决策轴),零语义重复。"
|
|
92
|
+
]
|
|
93
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
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+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-G1",
|
|
16
|
+
"candidate_id": "POLICY.ARCH.PREFER_VERIFIABLE_OPTION",
|
|
17
|
+
"density_rank": "UNIVERSAL",
|
|
18
|
+
"density_score": 32.0,
|
|
19
|
+
"pool_statement_sha16": "a2617515696dbf35",
|
|
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
|
+
"SHOULD"
|
|
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/01-architecture-governance-protocol.md",
|
|
39
|
+
"sha256": "726502f4e5a5dcf2e8076fafa943b33de4b7ab9bd0fc2d8551479b43385e7636",
|
|
40
|
+
"bytes": 1394
|
|
41
|
+
},
|
|
42
|
+
"seeded_spec": ".pomaster/specs/hard/backend/01-architecture-governance-protocol.md",
|
|
43
|
+
"seed_manifest": "packages/cli/seeds/manifest.json"
|
|
44
|
+
},
|
|
45
|
+
"id": "POLICY.ARCH.PREFER_VERIFIABLE_OPTION",
|
|
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
|
+
"verifiable option",
|
|
59
|
+
"team capability",
|
|
60
|
+
"runtime evidence"
|
|
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": "B6c BE 播种移植物化;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.ARCH.PREFER_VERIFIABLE_OPTION",
|
|
83
|
+
"source_protocol": ".trellis/spec/backend/01-architecture-governance-protocol.md",
|
|
84
|
+
"lines": "33"
|
|
85
|
+
},
|
|
86
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"review_notes": [
|
|
90
|
+
"advisory 物化(SHOULD 源):方案取舍优先可验证选项,源段 SHOULD——advisory 落点;与 ARCH.DECISION_TRADEOFF_RECORD(ELIGIBLE 池未物化)同域不同时点,零语义重复;enforcement 轴断言钉。"
|
|
91
|
+
]
|
|
92
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "id 域段待登记:AUTHZ(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.AUTHZ.NO_GATING_PROXY_TRUST",
|
|
17
|
+
"pool_statement_sha16": "f57a38b345fbc8b6",
|
|
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 NOT"
|
|
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/17-permission-authorization-protocol.md",
|
|
37
|
+
"sha256": "d85a431b682a3a7c3dd4a6ee1f67fc375b54edb4a8e7fe98d283103b64a6b41e",
|
|
38
|
+
"bytes": 1378
|
|
39
|
+
},
|
|
40
|
+
"seeded_spec": ".pomaster/specs/hard/backend/17-permission-authorization-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 NOT,按强度入册(MUST/MUST NOT 行锚 required 原样)",
|
|
46
|
+
"anchor_evidence": "MASTer 17-permission-authorization-protocol.md 29「- 不得只依赖路由隐藏、按钮状态或客户端传入的租户与 owner。」",
|
|
47
|
+
"pool_enforcement_at_seed": "required_when_applicable"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"id": "POLICY.AUTHZ.NO_GATING_PROXY_TRUST",
|
|
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
|
+
"no gating proxy trust",
|
|
64
|
+
"route hiding",
|
|
65
|
+
"button state",
|
|
66
|
+
"client-declared tenant/owner"
|
|
67
|
+
],
|
|
68
|
+
"applies_when": {
|
|
69
|
+
"lane": "backend",
|
|
70
|
+
"condition": "服务端授权判定",
|
|
71
|
+
"applicability_note": "服务端授权判定"
|
|
72
|
+
},
|
|
73
|
+
"enforcement": "required_when_applicable",
|
|
74
|
+
"authority": {
|
|
75
|
+
"owner": "HUMAN_OWNER",
|
|
76
|
+
"delegates": [],
|
|
77
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
78
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
79
|
+
},
|
|
80
|
+
"origin": "ingested",
|
|
81
|
+
"origin_note": "裁定批 F/D3-R1 D3 逐卡复核物化(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
82
|
+
"sources": [
|
|
83
|
+
{
|
|
84
|
+
"type": "design_seed",
|
|
85
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G2.yaml",
|
|
86
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
87
|
+
"locator": {
|
|
88
|
+
"candidate": "POLICY.AUTHZ.NO_GATING_PROXY_TRUST",
|
|
89
|
+
"source_protocol": ".trellis/spec/backend/17-permission-authorization-protocol.md",
|
|
90
|
+
"lines": "29"
|
|
91
|
+
},
|
|
92
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"review_notes": [
|
|
96
|
+
"客户端门禁表象禁令在既有 228 条中无对应条目;与同批 SERVER_FIVE_FACTOR_VERIFICATION 互引(正反两面)。",
|
|
97
|
+
"D3b 补锚:MASTer 17-permission-authorization-protocol.md L29(MUST NOT 段)。"
|
|
98
|
+
]
|
|
99
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "id 域段待登记:AUTHZ(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.AUTHZ.PERMISSION_SCOPE_EXPANSION_GATE",
|
|
17
|
+
"pool_statement_sha16": "1396b5b32e0ebac8",
|
|
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/17-permission-authorization-protocol.md",
|
|
37
|
+
"sha256": "d85a431b682a3a7c3dd4a6ee1f67fc375b54edb4a8e7fe98d283103b64a6b41e",
|
|
38
|
+
"bytes": 1378
|
|
39
|
+
},
|
|
40
|
+
"seeded_spec": ".pomaster/specs/hard/backend/17-permission-authorization-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 17-permission-authorization-protocol.md 57「扩大权限范围必须经过正式业务确认、安全评审和回归测试。」",
|
|
47
|
+
"pool_enforcement_at_seed": "required_when_applicable"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"id": "POLICY.AUTHZ.PERMISSION_SCOPE_EXPANSION_GATE",
|
|
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
|
+
"permission scope expansion",
|
|
64
|
+
"business confirmation",
|
|
65
|
+
"security review",
|
|
66
|
+
"regression evidence"
|
|
67
|
+
],
|
|
68
|
+
"applies_when": {
|
|
69
|
+
"lane": "backend",
|
|
70
|
+
"condition": "扩大权限范围时",
|
|
71
|
+
"applicability_note": "扩大权限范围时"
|
|
72
|
+
},
|
|
73
|
+
"enforcement": "advisory",
|
|
74
|
+
"authority": {
|
|
75
|
+
"owner": "HUMAN_OWNER",
|
|
76
|
+
"delegates": [],
|
|
77
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
78
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
79
|
+
},
|
|
80
|
+
"origin": "ingested",
|
|
81
|
+
"origin_note": "裁定批 F/D3-R1 D3 逐卡复核物化(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
82
|
+
"sources": [
|
|
83
|
+
{
|
|
84
|
+
"type": "design_seed",
|
|
85
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G2.yaml",
|
|
86
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
87
|
+
"locator": {
|
|
88
|
+
"candidate": "POLICY.AUTHZ.PERMISSION_SCOPE_EXPANSION_GATE",
|
|
89
|
+
"source_protocol": ".trellis/spec/backend/17-permission-authorization-protocol.md",
|
|
90
|
+
"lines": "57"
|
|
91
|
+
},
|
|
92
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"review_notes": [
|
|
96
|
+
"权限扩围三道手续在既有 228 条中无对应条目;与同批 SERVER_FIVE_FACTOR_VERIFICATION 正交(运行时核验 vs 扩围准入),互引。",
|
|
97
|
+
"Change Policy 锚(MASTer 17 L57)——降 advisory 入册。"
|
|
98
|
+
]
|
|
99
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "id 域段待登记:AUTHZ(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.AUTHZ.SERVER_FIVE_FACTOR_VERIFICATION",
|
|
17
|
+
"pool_statement_sha16": "95cbaf23fa6bbca1",
|
|
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/17-permission-authorization-protocol.md",
|
|
37
|
+
"sha256": "d85a431b682a3a7c3dd4a6ee1f67fc375b54edb4a8e7fe98d283103b64a6b41e",
|
|
38
|
+
"bytes": 1378
|
|
39
|
+
},
|
|
40
|
+
"seeded_spec": ".pomaster/specs/hard/backend/17-permission-authorization-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 17-permission-authorization-protocol.md 25「- 每个受保护操作必须在服务端验证主体、操作、租户、数据范围和资源归属。」",
|
|
47
|
+
"pool_enforcement_at_seed": "required_when_applicable"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"id": "POLICY.AUTHZ.SERVER_FIVE_FACTOR_VERIFICATION",
|
|
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
|
+
"server-side five-factor verification",
|
|
64
|
+
"subject",
|
|
65
|
+
"action",
|
|
66
|
+
"tenant",
|
|
67
|
+
"data scope",
|
|
68
|
+
"resource ownership"
|
|
69
|
+
],
|
|
70
|
+
"applies_when": {
|
|
71
|
+
"lane": "backend",
|
|
72
|
+
"condition": "执行任何受保护操作",
|
|
73
|
+
"applicability_note": "执行任何受保护操作"
|
|
74
|
+
},
|
|
75
|
+
"enforcement": "required_when_applicable",
|
|
76
|
+
"authority": {
|
|
77
|
+
"owner": "HUMAN_OWNER",
|
|
78
|
+
"delegates": [],
|
|
79
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
80
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
81
|
+
},
|
|
82
|
+
"origin": "ingested",
|
|
83
|
+
"origin_note": "裁定批 F/D3-R1 D3 逐卡复核物化(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
|
|
84
|
+
"sources": [
|
|
85
|
+
{
|
|
86
|
+
"type": "design_seed",
|
|
87
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G2.yaml",
|
|
88
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
89
|
+
"locator": {
|
|
90
|
+
"candidate": "POLICY.AUTHZ.SERVER_FIVE_FACTOR_VERIFICATION",
|
|
91
|
+
"source_protocol": ".trellis/spec/backend/17-permission-authorization-protocol.md",
|
|
92
|
+
"lines": "25"
|
|
93
|
+
},
|
|
94
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"review_notes": [
|
|
98
|
+
"服务端五元核验在既有 228 条中无对应条目(AUTHZ 域段本批新用,待词汇表 PR);与同批 NO_GATING_PROXY_TRUST 正交(正面核验义务 vs 客户端表象禁令),互引。",
|
|
99
|
+
"D3b 补锚:MASTer 17-permission-authorization-protocol.md L25(MUST 段)。"
|
|
100
|
+
]
|
|
101
|
+
}
|