@nimiplatform/nimi-coding 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/CHANGELOG.md +27 -0
- package/CONTRIBUTING.md +3 -3
- package/README.md +285 -41
- package/README.zh-CN.md +294 -31
- package/bin/nimicoding.mjs +1 -1
- package/cli/commands/authority.mjs +849 -0
- package/cli/commands/clear.mjs +27 -7
- package/cli/commands/doctor.mjs +10 -1
- package/cli/commands/start.mjs +23 -27
- package/cli/commands/sync.mjs +21 -101
- package/cli/constants.mjs +7 -31
- package/cli/dev/check-authority-surface.mjs +173 -0
- package/cli/dev/check-product-conformance.mjs +917 -0
- package/cli/help.mjs +10 -17
- package/cli/index.mjs +6 -47
- package/cli/lib/authority/anchors.mjs +491 -0
- package/cli/lib/authority/audit.mjs +490 -0
- package/cli/lib/authority/closed-sets.mjs +646 -0
- package/cli/lib/authority/compile.mjs +110 -0
- package/cli/lib/authority/consumers.mjs +470 -0
- package/cli/lib/authority/diagnostics.mjs +87 -0
- package/cli/lib/authority/diff.mjs +287 -0
- package/cli/lib/authority/discover.mjs +447 -0
- package/cli/lib/authority/evidence-snapshot.mjs +1 -0
- package/cli/lib/authority/evidence.mjs +1432 -0
- package/cli/lib/authority/format.mjs +197 -0
- package/cli/lib/authority/git-snapshot.mjs +1065 -0
- package/cli/lib/authority/graph.mjs +351 -0
- package/cli/lib/authority/impact.mjs +252 -0
- package/cli/lib/authority/lexicon.mjs +55 -0
- package/cli/lib/authority/query.mjs +162 -0
- package/cli/lib/authority/repository-corpus.mjs +37 -0
- package/cli/lib/authority/repository-inventory.mjs +34 -0
- package/cli/lib/authority/review.mjs +222 -0
- package/cli/lib/authority/sarif.mjs +181 -0
- package/cli/lib/authority/scope-bindings.mjs +225 -0
- package/cli/lib/authority/source-map.mjs +105 -0
- package/cli/lib/authority/source-markdown.mjs +167 -0
- package/cli/lib/authority/source-yaml.mjs +312 -0
- package/cli/lib/authority/surface.mjs +79 -0
- package/cli/lib/authority/terms.mjs +421 -0
- package/cli/lib/authority/tracked-text.mjs +70 -0
- package/cli/lib/authority/validate.mjs +308 -0
- package/cli/lib/bootstrap.mjs +55 -71
- package/cli/lib/doctor.mjs +40 -123
- package/cli/lib/entrypoints.mjs +103 -105
- package/cli/lib/fs-helpers.mjs +139 -15
- package/cli/lib/internal/governance/config.mjs +0 -36
- package/cli/lib/shared.mjs +8 -21
- package/cli/lib/sync.mjs +81 -92
- package/cli/lib/value-helpers.mjs +0 -26
- package/cli/lib/yaml-helpers.mjs +1 -124
- package/cli/seeds/bootstrap.mjs +31 -87
- package/cli/seeds/seed-policy.yaml +9 -63
- package/contracts/authority-evidence-bindings.schema.yaml +53 -0
- package/contracts/authority-evidence-probe-results.schema.yaml +38 -0
- package/contracts/authority-impact-dispositions.schema.yaml +13 -0
- package/contracts/authority-scope-bindings.schema.yaml +15 -0
- package/contracts/authority-source.schema.yaml +64 -0
- package/contracts/authority-verifier-bindings.schema.yaml +20 -0
- package/methodology/authority-authoring.yaml +144 -0
- package/methodology/core.yaml +31 -26
- package/package.json +10 -6
- package/spec/authority-anchors.yaml +99 -0
- package/spec/authority-audit.yaml +85 -0
- package/spec/authority-authoring.yaml +150 -0
- package/spec/authority-closed-sets.yaml +65 -0
- package/spec/authority-consumers.yaml +70 -0
- package/spec/authority-context.yaml +50 -0
- package/spec/authority-discovery.yaml +119 -0
- package/spec/authority-evidence.yaml +200 -0
- package/spec/authority-graph.yaml +59 -0
- package/spec/authority-impact.yaml +84 -0
- package/spec/authority-review.yaml +89 -0
- package/spec/authority-terms.yaml +59 -0
- package/spec/product-scope.yaml +36 -23
- package/cli/commands/blueprint-audit.mjs +0 -91
- package/cli/commands/classify-spec-tree.mjs +0 -5
- package/cli/commands/generate-spec-derived-docs.mjs +0 -151
- package/cli/commands/generate-spec-migration-plan.mjs +0 -30
- package/cli/commands/surface-validator-command.mjs +0 -49
- package/cli/commands/validate-domain-admission.mjs +0 -5
- package/cli/commands/validate-guidance-bodies.mjs +0 -5
- package/cli/commands/validate-placement.mjs +0 -5
- package/cli/commands/validate-projection-edges.mjs +0 -5
- package/cli/commands/validate-spec-audit.mjs +0 -27
- package/cli/commands/validate-spec-governance.mjs +0 -124
- package/cli/commands/validate-spec-tree.mjs +0 -27
- package/cli/commands/validate-table-family.mjs +0 -5
- package/cli/commands/validate-tracked-output-admission.mjs +0 -5
- package/cli/lib/blueprint-audit.mjs +0 -363
- package/cli/lib/contracts.mjs +0 -21
- package/cli/lib/internal/contracts-loaders.mjs +0 -47
- package/cli/lib/internal/contracts-parse.mjs +0 -192
- package/cli/lib/internal/governance/runner.mjs +0 -35
- package/cli/lib/internal/surface-taxonomy-validators.mjs +0 -1147
- package/cli/lib/internal/validators-shared.mjs +0 -12
- package/cli/lib/internal/validators-spec-helpers.mjs +0 -52
- package/cli/lib/internal/validators-spec.mjs +0 -380
- package/cli/lib/validators.mjs +0 -30
- package/config/bootstrap.yaml +0 -6
- package/config/spec-generation-inputs.yaml +0 -41
- package/contracts/domain-admission.schema.yaml +0 -56
- package/contracts/migration-inventory.schema.yaml +0 -15
- package/contracts/negative-fixtures.yaml +0 -26
- package/contracts/placement-contract.schema.yaml +0 -127
- package/contracts/projection-edge.schema.yaml +0 -46
- package/contracts/shared-enums.yaml +0 -63
- package/contracts/spec-generation-audit.schema.yaml +0 -46
- package/contracts/spec-generation-inputs.schema.yaml +0 -43
- package/contracts/spec-layout.schema.yaml +0 -32
- package/contracts/surface-taxonomy.schema.yaml +0 -139
- package/contracts/table-family.schema.yaml +0 -133
- package/contracts/tracked-output-admission.schema.yaml +0 -17
- package/methodology/four-closure-policy.yaml +0 -20
- package/methodology/role-separation-policy.yaml +0 -22
- package/methodology/spec-reconstruction.yaml +0 -69
- package/spec/_meta/spec-tree-model.yaml +0 -44
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
spec:
|
|
3
|
+
id: nimicoding.authority-evidence.v1
|
|
4
|
+
owner: nimi-coding
|
|
5
|
+
status: active
|
|
6
|
+
product_claim: one_stable_current_worktree_and_one_closed_project_binding_produce_exact_package_script_locator_and_declared_target_reachability_evidence_without_claiming_implementation_conformance_or_test_execution
|
|
7
|
+
command: nimicoding authority evidence <repository-path> --bindings <tracked-.nimi/config-path> [--probe-results <.nimi/local-path>] --max-units <positive-safe-integer> --max-bindings <positive-safe-integer> --max-locators <positive-safe-integer> --max-edges <positive-safe-integer> --max-input-bytes <positive-safe-integer> --max-bytes <positive-safe-integer> [--json]
|
|
8
|
+
surface:
|
|
9
|
+
primary_machine_product: JSON
|
|
10
|
+
human_output: concise_projection_of_the_same_logical_product
|
|
11
|
+
repository_selection: exact_current_non_bare_Git_worktree_root
|
|
12
|
+
repository_HEAD: one_resolvable_committed_full_OID_captured_once_as_non-semantic_context_with_unborn_HEAD_refused
|
|
13
|
+
authority_root: .nimi/spec
|
|
14
|
+
inputs:
|
|
15
|
+
authority: complete_stably_captured_current_.nimi/spec_admitted_by_compileAuthorityPath
|
|
16
|
+
binding:
|
|
17
|
+
format: nimicoding.authority-evidence-bindings/v1
|
|
18
|
+
authority: package://@nimiplatform/nimi-coding/contracts/authority-evidence-bindings.schema.yaml
|
|
19
|
+
source: one_stably_captured_regular_non_symlink_project_owned_.nimi/config_file_with_one_exact_stage-zero_regular_Git_index_entry
|
|
20
|
+
required_bindings: non_empty_so_an_accidentally_emptied_required_surface_is_refused
|
|
21
|
+
product_authority: false
|
|
22
|
+
external_results:
|
|
23
|
+
format: nimicoding.authority-evidence-probe-results/v1
|
|
24
|
+
authority: package://@nimiplatform/nimi-coding/contracts/authority-evidence-probe-results.schema.yaml
|
|
25
|
+
source: optional_stably_captured_regular_non_symlink_.nimi/local_supplied_observation_file
|
|
26
|
+
execution_or_truth_attestation: not_claimed
|
|
27
|
+
complete_input_boundary:
|
|
28
|
+
included:
|
|
29
|
+
- complete_.nimi/spec_inventory_paths_types_and_bytes
|
|
30
|
+
- exact_binding_bytes
|
|
31
|
+
- each_configured_manifest_path_type_and_bytes
|
|
32
|
+
- each_configured_command_target_path_type_and_bytes
|
|
33
|
+
- each_configured_test_target_path_type_and_bytes
|
|
34
|
+
- optional_external_result_bytes
|
|
35
|
+
repository_evidence_universe: binding_declared_paths_only
|
|
36
|
+
unbound_repository_files_inspected_or_proved_absent: false
|
|
37
|
+
path_escape_symlink_following_or_any_case-folded_.git_path_segment_access: forbidden
|
|
38
|
+
capture:
|
|
39
|
+
first: retain_exact_directory_and_file_handles_for_all_present_inputs_and_parent_directories_for_missing_inputs
|
|
40
|
+
second: recapture_complete_authority_inventory_binding_and_all_declared_repository_paths
|
|
41
|
+
commit: revalidate_all_held_paths_types_metadata_and_bytes
|
|
42
|
+
race: any_binding_authority_path_type_inventory_or_byte_change_refuses_the_whole_product
|
|
43
|
+
materialization: captured_authority_uses_one_isolated_temporary_directory_with_readback_validation_and_cleanup_after_success_or_failure
|
|
44
|
+
binding:
|
|
45
|
+
exact_fields: [id, authority, probe, manifest, command, tests, external_probe]
|
|
46
|
+
authority_fields: [unit, scope]
|
|
47
|
+
authority_resolution: exact_active_rule_and_exact_declared_scope_member
|
|
48
|
+
probe: package-script-target-reachability/v1
|
|
49
|
+
manifest: safe_repository_relative_regular_JSON_file
|
|
50
|
+
command_fields: [script, target]
|
|
51
|
+
tests_fields: [script, targets]
|
|
52
|
+
test_targets: non_empty_unique_repository_relative_paths
|
|
53
|
+
external_probe: null_or_exact_id_version_required_declaration
|
|
54
|
+
semantics: project_owned_integration_locator_only
|
|
55
|
+
exact_authority_ref_proves_probe_predicate_equivalence: false
|
|
56
|
+
project_product_defaults_statement_condition_failure_or_conformance: forbidden
|
|
57
|
+
package_owned_probe:
|
|
58
|
+
id: package-script-target-reachability/v1
|
|
59
|
+
version: 1
|
|
60
|
+
execution: deterministic_static_parse_on_captured_bytes_without_running_any_command
|
|
61
|
+
manifest_read:
|
|
62
|
+
document: one_valid_UTF-8_JSON_object_with_one_scripts_object
|
|
63
|
+
duplicate_or_invalid_JSON_structure: refused
|
|
64
|
+
admitted_command_script: node --import tsx <target>
|
|
65
|
+
admitted_test_script: pnpm exec vitest run <targets...>
|
|
66
|
+
grammar:
|
|
67
|
+
token_separator: one_ASCII_space
|
|
68
|
+
target_token_charset: ASCII_letters_digits_dot_underscore_hyphen_and_slash
|
|
69
|
+
target_order: exact_binding_order
|
|
70
|
+
inferred_alias_flag_glob_quote_shell_or_environment_semantics: forbidden
|
|
71
|
+
locators:
|
|
72
|
+
- authority_unit_and_scope_independent_SourceMap_locations
|
|
73
|
+
- manifest_file_and_exact_script_value_locations
|
|
74
|
+
- command_target_regular_file
|
|
75
|
+
- each_test_target_regular_file
|
|
76
|
+
graph_edges:
|
|
77
|
+
- authority_to_project_binding
|
|
78
|
+
- binding_to_manifest
|
|
79
|
+
- manifest_to_command_script
|
|
80
|
+
- command_script_to_command_target
|
|
81
|
+
- manifest_to_test_script
|
|
82
|
+
- test_script_to_each_test_target
|
|
83
|
+
graph_product: every_budgeted_edge_is_returned_as_one_explicit_per-binding_edge_record
|
|
84
|
+
graph_edge_status: [bound, reachable, missing, mismatch, indeterminate]
|
|
85
|
+
reachability:
|
|
86
|
+
reachable: exact_script_grammar_matches_the_binding_and_every_required_target_locator_exists_as_one_supported_regular_file
|
|
87
|
+
missing: exact_manifest_script_or_declared_target_is_absent
|
|
88
|
+
unsupported: present_input_cannot_be_decided_by_the_closed_static_grammar_or_supported_entry_types
|
|
89
|
+
basis: project_binding_plus_package_computed_exact_locator_resolution
|
|
90
|
+
runtime_call_graph_execution_test_result_or_behavioral_conformance: not_claimed
|
|
91
|
+
declared_target_existence: evaluated_independently_from_script_grammar_so_a_missing_target_is_never_hidden_by_an_unsupported_script
|
|
92
|
+
external_probe_results:
|
|
93
|
+
identities_required: [authority_content_identity, repository_input_identity, binding_identity]
|
|
94
|
+
result_match: exact_binding_external_probe_ID_version_and_unique_result_item
|
|
95
|
+
output_state_mapping:
|
|
96
|
+
no_item: not_provided
|
|
97
|
+
completed_passed: [reported_completed, reported_passed]
|
|
98
|
+
completed_failed: [reported_completed, reported_failed]
|
|
99
|
+
failed: [reported_execution_failed, null]
|
|
100
|
+
unsupported: [reported_unsupported, null]
|
|
101
|
+
output_source: external_supplied
|
|
102
|
+
packageAttestation: false
|
|
103
|
+
required_not_provided_failed_unsupported_or_reported_failed: required_evidence_gap
|
|
104
|
+
optional_state: observation_only
|
|
105
|
+
malformed_extra_duplicate_unknown_or_identity_mismatch: refused_with_null_evidence
|
|
106
|
+
reported_pass_effect: satisfies_only_the_declared_supplied_observation_requirement
|
|
107
|
+
reported_pass_does_not_prove: [probe_execution, test_success, implementation_conformance, authority_satisfaction]
|
|
108
|
+
identity:
|
|
109
|
+
format: sha256_colon_lowercase_hex
|
|
110
|
+
authority_content_identity:
|
|
111
|
+
domain: nimicoding.authority-snapshot-content/v1
|
|
112
|
+
inputs: complete_sorted_.nimi/spec_regular_file_paths_types_lengths_and_exact_bytes
|
|
113
|
+
repository_input_identity:
|
|
114
|
+
domain: nimicoding.repository-evidence-input/v1
|
|
115
|
+
inputs: sorted_unique_binding_declared_repository_paths_entry_state_type_exact_byte_length_and_bytes
|
|
116
|
+
missing_or_unsupported: explicit_framed_state_marker_without_following_or_inference
|
|
117
|
+
excludes: [authority_bytes, binding_bytes, external_result_bytes]
|
|
118
|
+
binding_identity:
|
|
119
|
+
domain: nimicoding.authority-evidence-binding/v1
|
|
120
|
+
inputs: exact_captured_binding_byte_length_and_bytes
|
|
121
|
+
excluded_from_all_semantic_identities: [absolute_repository_path, branch_name, mtime, ctime, inode, permissions, traversal_order, temporary_path]
|
|
122
|
+
external_result: excluded_from_input_identities_and_required_to_exact_match_all_three
|
|
123
|
+
product:
|
|
124
|
+
format: nimicoding.authority-evidence/v1
|
|
125
|
+
top_level_fields: [format, operationStatus, evidenceStatus, complete, partial, conformanceStatus, identities, bindings, observations, findings, gaps, counts, budgets]
|
|
126
|
+
operationStatus: completed
|
|
127
|
+
evidenceStatus:
|
|
128
|
+
unavailable: at_least_one_required_package_computed_script_or_target_reachability_finding
|
|
129
|
+
indeterminate: no_required_reachability_finding_and_at_least_one_required_gap
|
|
130
|
+
available: no_required_reachability_finding_or_gap
|
|
131
|
+
complete: false_only_when_at_least_one_required_gap_exists
|
|
132
|
+
partial: false
|
|
133
|
+
conformanceStatus: not_evaluated
|
|
134
|
+
binding_record:
|
|
135
|
+
authority: exact_unit_scope_unit_location_and_independent_scopeLocation
|
|
136
|
+
packageProbe: package_computed_ID_version_and_execution_status
|
|
137
|
+
manifest: exact_path_script_locations_and_entry_state
|
|
138
|
+
command: exact_script_target_locations_and_reachability_state
|
|
139
|
+
tests: exact_script_target_locations_and_reachability_state
|
|
140
|
+
externalProbe: declared_requirement_reported_state_and_packageAttestation_false
|
|
141
|
+
edges: complete_explicit_5_plus_test_target_count_graph_with_source_target_basis_status_and_locations
|
|
142
|
+
obligationKeys:
|
|
143
|
+
consumer: exact_rule_ID_consumer_scope_tuple
|
|
144
|
+
test: exact_rule_ID_test_rule_ID_tuple
|
|
145
|
+
observation: declaration_existence_exact_script_shape_and_reachability_facts_only
|
|
146
|
+
finding:
|
|
147
|
+
code: AUTH_EVIDENCE_REQUIRED_TARGET_UNREACHABLE
|
|
148
|
+
basis: governance_bound_package_computed_exact_locator_reachability
|
|
149
|
+
claim: required_bound_script_or_target_locator_is_missing_not_that_implementation_violates_authority
|
|
150
|
+
gaps:
|
|
151
|
+
- required_binding_missing
|
|
152
|
+
- supported_static_probe_capability_unavailable
|
|
153
|
+
- required_external_probe_not_provided
|
|
154
|
+
- required_external_probe_reported_execution_failure
|
|
155
|
+
- required_external_probe_reported_unsupported
|
|
156
|
+
- required_external_probe_reported_failure
|
|
157
|
+
locations: repository_relative_with_exact_range_for_authority_manifest_script_and_present_target_witnesses
|
|
158
|
+
fingerprints:
|
|
159
|
+
algorithm: SHA-256_with_sha256_colon_prefix
|
|
160
|
+
inputs: stable_item_code_probe_version_binding_ID_authority_ID_scope_and_logical_target_IDs
|
|
161
|
+
excluded: [absolute_path, relative_path, range, message, repository_input_identity, external_adapter, policy]
|
|
162
|
+
ordering:
|
|
163
|
+
bindings: binding_ID
|
|
164
|
+
locators: logical_locator_ID
|
|
165
|
+
edges: [source, target, edge_ID]
|
|
166
|
+
observations_findings_gaps: [binding_ID, code, logical_target_ID]
|
|
167
|
+
budgets:
|
|
168
|
+
required: [maxUnits, maxBindings, maxLocators, maxEdges, maxInputBytes, maxBytes]
|
|
169
|
+
values: positive_safe_integers
|
|
170
|
+
maxUnits: complete_admitted_authority_corpus_unit_count
|
|
171
|
+
maxBindings: distinct_union_of_required_and_configured_binding_IDs
|
|
172
|
+
maxLocators: all_logical_authority_manifest_script_command_target_and_test_target_locators_required_for_complete_output
|
|
173
|
+
maxEdges: all_explicitly_returned_declared_evidence_graph_edges_before_status_filtering
|
|
174
|
+
maxInputBytes: sum_of_all_captured_regular_authority_binding_manifest_target_and_external_result_bytes
|
|
175
|
+
maxBytes: UTF-8_bytes_of_compact_JSON.stringify_complete_evidence
|
|
176
|
+
overflow: AUTH_EVIDENCE_BUDGET_with_evidence_null_partial_false
|
|
177
|
+
outcomes:
|
|
178
|
+
completed_available: evidence_present_complete_true_evidenceStatus_available_exit_0_without_conformance_claim
|
|
179
|
+
completed_unavailable: evidence_present_with_required_package_computed_finding_exit_1
|
|
180
|
+
completed_indeterminate: evidence_present_complete_false_with_required_gap_exit_1
|
|
181
|
+
refused: invalid_repository_corpus_binding_authority_reference_scope_manifest_JSON_result_identity_capture_or_budget_returns_evidence_null_partial_false_exit_1
|
|
182
|
+
usage_error: missing_repeated_unknown_or_invalid_CLI_argument_exit_2_without_evidence_product
|
|
183
|
+
failed: uncaught_IO_resource_or_internal_failure_exit_2_without_evidence_product
|
|
184
|
+
partial_or_truncated_output: forbidden
|
|
185
|
+
anti_overclaim:
|
|
186
|
+
file_or_target_exists_means_conformance: false
|
|
187
|
+
exact_package_script_shape_means_command_executed: false
|
|
188
|
+
test_target_exists_means_test_executed_or_passed: false
|
|
189
|
+
external_reported_pass_means_package_attestation: false
|
|
190
|
+
reachability_label: declared_package_script_target_reachability_only
|
|
191
|
+
clean_verified_conforms_or_test_passed_language: forbidden
|
|
192
|
+
boundaries:
|
|
193
|
+
writes_authority_repository_Git_index_or_project_files: false
|
|
194
|
+
arbitrary_shell_plugin_script_or_test_execution: forbidden
|
|
195
|
+
source_code_AST_universal_ontology_call_graph_or_semantic_inference: forbidden
|
|
196
|
+
canonical_grammar_kind_field_or_relation_change: none
|
|
197
|
+
durable_cache_database_history_receipt_or_ledger: none
|
|
198
|
+
SARIF_review_diff_impact_or_audit_aggregation: none
|
|
199
|
+
model_embedding_AI_remediation_UI_IDE_Studio_Atlas_or_release_orchestration: not_owned
|
|
200
|
+
public_AuthorityIR_or_SourceMap_export: none
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
spec:
|
|
3
|
+
id: nimicoding.authority-graph.v1
|
|
4
|
+
owner: nimi-coding
|
|
5
|
+
status: active
|
|
6
|
+
product_claim: complete_admitted_private_compiler_snapshot_supports_bounded_direct_refs_exact_path_and_local_subgraph
|
|
7
|
+
source: one_complete_package_private_AuthorityIR_and_SourceMap_compile_per_command
|
|
8
|
+
commands:
|
|
9
|
+
refs: nimicoding authority refs <path> <id> --direction <incoming|outgoing|both> --relations <closed-set> --max-units <positive-safe-integer> --max-edges <positive-safe-integer> --max-bytes <positive-safe-integer> [--json]
|
|
10
|
+
path: nimicoding authority path <path> <from-id> <to-id> --traversal <directed|incidence> --relations <closed-set> --max-hops <positive-safe-integer> --max-units <positive-safe-integer> --max-edges <positive-safe-integer> --max-bytes <positive-safe-integer> [--json]
|
|
11
|
+
subgraph: nimicoding authority subgraph <path> <id> --direction <incoming|outgoing|both> --relations <closed-set> --depth <positive-safe-integer> --max-units <positive-safe-integer> --max-edges <positive-safe-integer> --max-bytes <positive-safe-integer> [--json]
|
|
12
|
+
relations:
|
|
13
|
+
admitted: [applies_to, supersedes]
|
|
14
|
+
request: explicit_non_empty_unique_closed_set
|
|
15
|
+
defaults_or_all_alias: forbidden
|
|
16
|
+
product:
|
|
17
|
+
format: nimicoding.authority-graph/v1
|
|
18
|
+
shared_fields: [format, operation, query, complete, nodes, edges, policy, counts, budgets]
|
|
19
|
+
path_fields: [found, steps]
|
|
20
|
+
node_fields: [id, kind, owner, lifecycle, scope, location]
|
|
21
|
+
definition_or_removed_scope: []
|
|
22
|
+
edge_fields: [source, type, target, sourceLocation, relationLocation, targetLocation]
|
|
23
|
+
location_fields: [file, range, sourcePointer]
|
|
24
|
+
semantic_prose_or_raw_AuthorityIR: excluded
|
|
25
|
+
ordering:
|
|
26
|
+
nodes: lexical_ID
|
|
27
|
+
edges: [source, type, target]
|
|
28
|
+
comparator: portable_lexical_comparator
|
|
29
|
+
traversal:
|
|
30
|
+
refs: direct_only_with_each_authored_edge_once
|
|
31
|
+
path_directed: authored_source_to_target_only
|
|
32
|
+
path_incidence: forward_or_reverse_steps_while_edges_remain_canonical_authored_source_to_target
|
|
33
|
+
reverse_step_claim: topology_incidence_only_not_semantic_dependency
|
|
34
|
+
path_selection: minimum_hops_then_lexical_minimum_complete_step_tuple_sequence
|
|
35
|
+
path_step_tuple: [relation_type, traversal, authored_source, authored_target]
|
|
36
|
+
subgraph: deterministic_cycle_safe_BFS_returning_complete_selected_graph_within_depth
|
|
37
|
+
budgets:
|
|
38
|
+
required_all: [max_units, max_edges, max_bytes]
|
|
39
|
+
path_also_requires: max_hops
|
|
40
|
+
subgraph_also_requires: depth
|
|
41
|
+
units_and_edges: constrain_complete_traversal_proof_not_only_returned_witness
|
|
42
|
+
bytes: UTF-8_bytes_of_compact_JSON.stringify_graph
|
|
43
|
+
overflow: AUTH_GRAPH_BUDGET_with_null_graph_and_partial_false
|
|
44
|
+
outcomes:
|
|
45
|
+
completed: includes_complete_no_path_with_found_false
|
|
46
|
+
usage_error: invalid_or_missing_CLI_arguments_exit_2_without_graph_product
|
|
47
|
+
refused: parsed_invocation_with_invalid_corpus_unknown_ID_or_insufficient_budget
|
|
48
|
+
failed: IO_resource_or_internal_failure
|
|
49
|
+
unknown_ID: AUTH_QUERY_NOT_FOUND
|
|
50
|
+
partial_or_truncated_graph: forbidden
|
|
51
|
+
locations:
|
|
52
|
+
paths: input_root_relative_portable_paths_when_inside_input_root
|
|
53
|
+
semantics: preserve_SourceMap_range_and_sourcePointer
|
|
54
|
+
relocation: equivalent_relocated_corpus_has_stable_logical_graph_and_relative_locations
|
|
55
|
+
boundaries:
|
|
56
|
+
read_only: true
|
|
57
|
+
durable_graph_cache_or_database: none
|
|
58
|
+
public_JS_exports: none
|
|
59
|
+
new_grammar_relation_or_inferred_prose_relation: forbidden
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
spec:
|
|
3
|
+
id: nimicoding.authority-impact.v1
|
|
4
|
+
owner: nimi-coding
|
|
5
|
+
status: active
|
|
6
|
+
product_claim: compare_admitted_compiler_outputs_and_report_declared_review_obligations_without_claiming_sync_or_completion
|
|
7
|
+
commands:
|
|
8
|
+
diff: nimicoding authority diff <before-path> <after-path> --max-bytes <positive-integer> [--json]
|
|
9
|
+
impact: nimicoding authority impact <before-path> <after-path> --dispositions <file> --max-bytes <positive-integer> [--json]
|
|
10
|
+
diff:
|
|
11
|
+
source: two_independently_admitted_compiler_outputs
|
|
12
|
+
format: nimicoding.authority-diff/v1
|
|
13
|
+
top_level_fields: [format, changes, summary]
|
|
14
|
+
summary_fields: [units, changes]
|
|
15
|
+
record:
|
|
16
|
+
required_fields: [unitId, operation, pointer, before, after]
|
|
17
|
+
optional_fields: [beforeSource, afterSource]
|
|
18
|
+
operation_enum:
|
|
19
|
+
unit_added: complete_after_unit
|
|
20
|
+
modified: scalar_field_before_and_after
|
|
21
|
+
added: scope_value_or_relation_added
|
|
22
|
+
removed: scope_value_or_relation_removed
|
|
23
|
+
source_record_fields: [file, range, sourcePointer]
|
|
24
|
+
range_fields: [start, end]
|
|
25
|
+
position_fields: [line, column]
|
|
26
|
+
unit_removed_operation: forbidden
|
|
27
|
+
physical_unit_deletion: AUTH_DIFF_TRANSITION_INVALID
|
|
28
|
+
retirement: active_unit_is_replaced_by_a_valid_same_ID_same_kind_removed_tombstone
|
|
29
|
+
tombstone_retention: removed_unit_remains_present_until_a_separately_admitted_reserved_ID_mechanism_exists
|
|
30
|
+
pure_profile_format_file_rename_unit_order_or_container_regroup_change: empty
|
|
31
|
+
ordering: [unit_ID, JSON_pointer, operation, values]
|
|
32
|
+
traceability: changed_values_reference_before_and_or_after_SourceMap
|
|
33
|
+
invalid_input_diagnostics:
|
|
34
|
+
path_identity: before_or_after_prefix_plus_input_root_relative_path
|
|
35
|
+
related_paths: same_side_prefix_and_relative_normalization
|
|
36
|
+
ordering: global_diagnostic_order_after_normalization
|
|
37
|
+
relocated_equivalent_inputs: byte_identical_JSON
|
|
38
|
+
byte_budget:
|
|
39
|
+
scope: semantic_diff_only_not_complete_CLI_report_or_compiler_diagnostics
|
|
40
|
+
measure: UTF-8_bytes_of_compact_JSON_stringify_diff
|
|
41
|
+
overflow: AUTH_DIFF_BUDGET
|
|
42
|
+
result: {diff: null, partial: false}
|
|
43
|
+
impact:
|
|
44
|
+
format: nimicoding.authority-impact/v1
|
|
45
|
+
top_level_fields: [format, changedUnits, impactedUnits, obligations, complete]
|
|
46
|
+
impacted_unit_fields: [id, kind]
|
|
47
|
+
obligation_fields: [ruleId, type, target, disposition]
|
|
48
|
+
disposition_fields_when_addressed: [ruleId, type, target, status, evidence]
|
|
49
|
+
roots: normative_governance_definition_rule_graph_changes; non_normative_metadata_diff_is_reported_but_creates_no_obligation
|
|
50
|
+
direction: reverse_declared_relations_from_changed_units_to_dependents
|
|
51
|
+
relation_categories: [applies_to, supersedes]
|
|
52
|
+
unrelated_units: excluded
|
|
53
|
+
active_rule_obligations:
|
|
54
|
+
consumer: union_of_before_and_after_declared_scope
|
|
55
|
+
test: one_explicit_evidence_disposition_per_impacted_active_rule
|
|
56
|
+
missing_disposition: AUTH_IMPACT_UNDISPOSED
|
|
57
|
+
complete: every_required_declared_obligation_has_exact_addressed_evidence
|
|
58
|
+
proof_boundary: does_not_prove_implementation_consumer_or_test_synchronization
|
|
59
|
+
partial_success: false
|
|
60
|
+
failure_report: may_list_complete_impacted_units_and_unresolved_obligations_with_ok_false
|
|
61
|
+
byte_budget:
|
|
62
|
+
scope: semantic_diff_and_impact_only_not_complete_CLI_report_or_compiler_diagnostics
|
|
63
|
+
measure: UTF-8_bytes_of_compact_JSON_stringify_object_containing_diff_and_impact
|
|
64
|
+
overflow: AUTH_IMPACT_BUDGET
|
|
65
|
+
result: {diff: null, impact: null, partial: false}
|
|
66
|
+
dispositions:
|
|
67
|
+
format: nimicoding.authority-impact-dispositions/v1
|
|
68
|
+
authority: package://@nimiplatform/nimi-coding/contracts/authority-impact-dispositions.schema.yaml
|
|
69
|
+
status: addressed
|
|
70
|
+
evidence: explicit_non_empty_text
|
|
71
|
+
inference: forbidden
|
|
72
|
+
fail_closed:
|
|
73
|
+
invalid_before_or_after_authority: compiler_diagnostics
|
|
74
|
+
identity_reuse_kind_change_or_physical_deletion: AUTH_DIFF_TRANSITION_INVALID_or_compiler_identity_diagnostics
|
|
75
|
+
dangling_relation_or_illegal_lifecycle: compiler_diagnostics
|
|
76
|
+
malformed_or_extra_disposition: AUTH_IMPACT_DISPOSITION_INVALID
|
|
77
|
+
missing_or_invalid_max_bytes: CLI_usage_failure
|
|
78
|
+
boundaries:
|
|
79
|
+
writes_authority: false
|
|
80
|
+
durable_artifacts: none
|
|
81
|
+
git_interpretation: none
|
|
82
|
+
natural_language_contradiction_detection: not_claimed
|
|
83
|
+
implementation_consumer_test_sync_proof: not_admitted
|
|
84
|
+
storage_search_embedding_visualization_AI_execution_Atlas: not_admitted
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
spec:
|
|
3
|
+
id: nimicoding.authority-review.v1
|
|
4
|
+
owner: nimi-coding
|
|
5
|
+
status: active
|
|
6
|
+
product_claim: one_explicit_Git_base_commit_and_one_stable_current_worktree_produce_an_exact_read_only_change_review_over_complete_canonical_snapshots
|
|
7
|
+
command: nimicoding authority review <repository-path> --base <git-ref> --bindings <file> --dispositions <file> --max-units <positive-safe-integer> --max-edges <positive-safe-integer> --max-bytes <positive-safe-integer> [--json]
|
|
8
|
+
capture:
|
|
9
|
+
repository: exact_non_bare_Git_worktree_root
|
|
10
|
+
base_ref:
|
|
11
|
+
resolution: once_at_capture_start_to_immutable_full_commit_OID
|
|
12
|
+
later_use: full_OID_only
|
|
13
|
+
option_injection: refused
|
|
14
|
+
base_authority:
|
|
15
|
+
source: Git_object_database
|
|
16
|
+
root: .nimi/spec_tree_required
|
|
17
|
+
inventory: all_nested_tree_and_leaf_entries_without_suffix_filtering
|
|
18
|
+
admitted_entry_types: [tree, regular_blob_100644_or_100755]
|
|
19
|
+
refused: [symlink_blob, gitlink, unknown_mode_or_type, invalid_UTF-8_path, path_escape, duplicate_path, missing_object]
|
|
20
|
+
worktree_authority:
|
|
21
|
+
source: complete_live_filesystem_inventory_under_.nimi/spec
|
|
22
|
+
includes: [tracked_unchanged, tracked_modification, tracked_deletion, untracked_or_ignored_file, unsupported_regular_file]
|
|
23
|
+
refused: [missing_root, symlink, non_regular_entry, invalid_UTF-8_path, path_escape]
|
|
24
|
+
stability: retain_exact_directory_and_file_handles_while_capturing_paths_types_bytes_and_metadata_then_recapture_complete_live_inventory_and_revalidate_all_held_handles_at_capture_commit
|
|
25
|
+
race: any_path_type_byte_or_stability_metadata_change_refuses_the_whole_capture
|
|
26
|
+
materialization:
|
|
27
|
+
location: independent_0700_temporary_directory
|
|
28
|
+
isolation: physical_temporary_root_must_be_outside_worktree_and_Git_administration_roots_before_any_directory_is_created_and_is_rechecked_after_creation
|
|
29
|
+
validation: readback_paths_types_and_bytes_must_match_capture
|
|
30
|
+
cleanup: required_after_success_or_failure
|
|
31
|
+
Git_mutation: [checkout, stash, reset, stage, commit, branch_update, worktree_update, index_update]
|
|
32
|
+
Git_mutation_posture: forbidden
|
|
33
|
+
snapshot_identity:
|
|
34
|
+
format: sha256_colon_lowercase_hex
|
|
35
|
+
domain: nimicoding.authority-snapshot-content/v1
|
|
36
|
+
inputs: sorted_repository_relative_regular_file_paths_entry_type_exact_byte_length_and_bytes
|
|
37
|
+
excludes: [base_ref_name, commit_OID, executable_bit, permissions, mtime, ctime, inode, absolute_path, temporary_path, traversal_order]
|
|
38
|
+
result:
|
|
39
|
+
base: [commitOid, contentIdentity, file_count, unit_count, byte_count]
|
|
40
|
+
worktree: [contentIdentity, file_count, unit_count, byte_count]
|
|
41
|
+
oracles:
|
|
42
|
+
admission_and_counts: compileAuthorityPath_on_each_materialized_snapshot
|
|
43
|
+
semantic_delta: diffAuthorityPaths
|
|
44
|
+
declared_impact: impactAuthorityPaths
|
|
45
|
+
current_governance: auditAuthorityPath_on_worktree_snapshot_only
|
|
46
|
+
copied_Git_parser_IR_graph_diff_or_detector: forbidden
|
|
47
|
+
product:
|
|
48
|
+
format: nimicoding.authority-review/v1
|
|
49
|
+
top_level_fields: [format, operationStatus, policyStatus, complete, partial, snapshots, components, diff, impact, audit, budgets]
|
|
50
|
+
operationStatus: completed
|
|
51
|
+
policyStatus:
|
|
52
|
+
blocked: current_audit_has_a_blocking_finding
|
|
53
|
+
indeterminate: no_blocking_finding_and_impact_or_audit_coverage_is_incomplete
|
|
54
|
+
passed: review_is_complete_and_current_audit_policy_passed
|
|
55
|
+
complete: impact_complete_and_audit_complete_independent_of_blocking_policy
|
|
56
|
+
partial: false
|
|
57
|
+
components: [snapshots, diff, impact, audit]
|
|
58
|
+
component_fields: [operationStatus, complete]
|
|
59
|
+
logical_products:
|
|
60
|
+
diff: nimicoding.authority-diff/v1
|
|
61
|
+
impact: nimicoding.authority-impact/v1
|
|
62
|
+
audit: nimicoding.authority-audit/v1
|
|
63
|
+
audit_claim: current_snapshot_only_without_before_after_finding_attribution
|
|
64
|
+
budgets:
|
|
65
|
+
required: [maxUnits, maxEdges, maxBytes]
|
|
66
|
+
values: positive_safe_integers
|
|
67
|
+
units_and_edges: existing_audit_proof_traversal_semantics
|
|
68
|
+
component_bytes: same_explicit_maxBytes_passed_to_diff_impact_and_audit
|
|
69
|
+
review_bytes: UTF-8_bytes_of_compact_JSON.stringify_complete_review
|
|
70
|
+
overflow: AUTH_REVIEW_BUDGET_or_existing_component_budget_with_review_null_and_partial_false
|
|
71
|
+
outcomes:
|
|
72
|
+
completed_passed: review_present_complete_true_policy_passed_exit_0
|
|
73
|
+
completed_blocked: review_present_policy_blocked_exit_1
|
|
74
|
+
completed_incomplete: review_present_complete_false_exit_1
|
|
75
|
+
refused: invalid_Git_corpus_binding_disposition_capture_transition_or_budget_returns_review_null_partial_false_exit_1
|
|
76
|
+
usage_error: missing_repeated_or_invalid_CLI_argument_exit_2_without_review_product
|
|
77
|
+
failed: uncaught_IO_resource_or_internal_failure_exit_2_without_review_product
|
|
78
|
+
unresolved_impact: only_AUTH_IMPACT_UNDISPOSED_preserves_complete_logical_review_with_complete_false
|
|
79
|
+
invalid_disposition: any_AUTH_IMPACT_DISPOSITION_INVALID_refuses_whole_review
|
|
80
|
+
required_audit_gap: preserves_complete_logical_review_with_complete_false
|
|
81
|
+
blocking_finding: preserves_complete_logical_review_without_claiming_finding_was_introduced_by_change
|
|
82
|
+
boundaries:
|
|
83
|
+
writes_authority_or_project_files: false
|
|
84
|
+
durable_cache_database_history_or_receipt: none
|
|
85
|
+
SARIF_review_aggregation: none
|
|
86
|
+
heuristic_rename_split_merge_semantics: forbidden
|
|
87
|
+
PR_branch_policy_approval_comment_commit_release_or_task_orchestration: not_owned
|
|
88
|
+
arbitrary_shell_plugin_test_model_embedding_or_semantic_search_execution: forbidden
|
|
89
|
+
public_AuthorityIR_or_SourceMap_export: none
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
spec:
|
|
3
|
+
id: nimicoding.authority-terms.v1
|
|
4
|
+
owner: nimi-coding
|
|
5
|
+
status: active
|
|
6
|
+
product_claim: bounded_static_index_of_the_identifiers_the_active_authority_corpus_uses_and_optionally_where_one_exact_identifier_appears_in_tracked_text
|
|
7
|
+
command: nimicoding authority terms <repository-path> --spec <corpus-path> [--term <t>] [--code] --max-units <positive-safe-integer> --max-terms <positive-safe-integer> --max-bytes <positive-safe-integer> [--json]
|
|
8
|
+
surface:
|
|
9
|
+
report_format: nimicoding.authority-terms/v1
|
|
10
|
+
corpus_root: repository_authority_corpus_only
|
|
11
|
+
boolean_flags: [json, code]
|
|
12
|
+
value_flags: [spec, term]
|
|
13
|
+
integer_flags: [max-units, max-terms, max-bytes]
|
|
14
|
+
repeatable_flags: []
|
|
15
|
+
findings_change_exit_code: false
|
|
16
|
+
inputs:
|
|
17
|
+
repository:
|
|
18
|
+
shape: exact_non_symlink_Git_worktree_root
|
|
19
|
+
tracked_files: one_complete_git_ls_files_cached_NUL_inventory
|
|
20
|
+
writes_or_execution: forbidden
|
|
21
|
+
corpus:
|
|
22
|
+
root: exact_repository_relative_.nimi/spec_resolved_realpath
|
|
23
|
+
units: active_only
|
|
24
|
+
fields: [title, meaning, statement, condition, failure]
|
|
25
|
+
term:
|
|
26
|
+
required_for_code: true
|
|
27
|
+
admission: must_be_one_exact_term_the_closed_lexical_grammar_admits
|
|
28
|
+
lexical_grammar:
|
|
29
|
+
classes: [snake_case, camelCase, UPPER_SNAKE, PascalCase, dotted]
|
|
30
|
+
boundaries: ASCII_identifier_boundaries_required
|
|
31
|
+
excluded: terms_inside_longer_path_like_tokens_containing_a_slash
|
|
32
|
+
dotted_exclusion: final_segments_that_are_known_code_extensions
|
|
33
|
+
code_inventory:
|
|
34
|
+
shape: tracked_text_inventory_v1
|
|
35
|
+
selection: by_decoded_content_never_by_an_extension_allowlist
|
|
36
|
+
rationale: a_fixed_extension_list_silently_dropped_whole_languages_while_the_report_claimed_complete
|
|
37
|
+
binary_detection: NUL_byte_or_undecodable_UTF_8_prefix_probe
|
|
38
|
+
probe_decoder: one_fresh_decoder_per_file_so_a_straddling_character_cannot_reject_the_next_file
|
|
39
|
+
exclusions:
|
|
40
|
+
every_excluded_file_reported: true
|
|
41
|
+
reasons: [authority-corpus, binary-content, not-utf8]
|
|
42
|
+
silent_exclusion: forbidden
|
|
43
|
+
accounting: tracked_files_equals_scanned_files_plus_excluded_files
|
|
44
|
+
budgets:
|
|
45
|
+
max_units: complete_active_unit_set_must_fit
|
|
46
|
+
max_terms: complete_distinct_term_set_must_fit
|
|
47
|
+
max_bytes: inputBytes_complete_decoded_authority_and_optional_code_input_must_fit
|
|
48
|
+
exceeded: refuse_with_one_diagnostic_and_no_partial_index_or_cross_reference
|
|
49
|
+
result:
|
|
50
|
+
trackedPathSetDigest: sha256_hex_of_nimicoding.repository-inventory/v1_canonical_tracked_path_set_preimage
|
|
51
|
+
complete: true_only_when_every_admitted_input_was_read_and_classified
|
|
52
|
+
byte_counts:
|
|
53
|
+
scannedBytes: selected_normative_authority_fields_plus_optional_decoded_code_inputs
|
|
54
|
+
inputBytes: complete_decoded_authority_corpus_plus_optional_decoded_code_inputs
|
|
55
|
+
partial: never
|
|
56
|
+
modes: [index, detail]
|
|
57
|
+
detail_fields: [term, classes, unitCount, units, code, codeReferences, codeInventory]
|
|
58
|
+
findings_change_exit_code: false
|
|
59
|
+
determinism: identical_inputs_produce_byte_identical_output
|
package/spec/product-scope.yaml
CHANGED
|
@@ -1,27 +1,40 @@
|
|
|
1
|
-
version:
|
|
1
|
+
version: 7
|
|
2
2
|
product:
|
|
3
3
|
package_name: "@nimiplatform/nimi-coding"
|
|
4
|
-
mission:
|
|
4
|
+
mission: canonical_authority_methodology_formatter_compiler_primitives_and_deterministic_gates
|
|
5
5
|
owned_surfaces:
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
6
|
+
- compact_authority_authoring_methodology
|
|
7
|
+
- exact_authority_guide_projection_and_managed_instruction_blocks
|
|
8
|
+
- canonical_authority_format_and_complete_root_check
|
|
9
|
+
- private_compile_bounded_filtered_lexical_discovery_with_field_snippets_optional_direct_authored_relation_preview_exact_query_and_declared_outgoing_context
|
|
10
|
+
- semantic_diff_and_declared_review_impact
|
|
11
|
+
- bounded_direct_references_exact_relation_paths_and_local_subgraphs
|
|
12
|
+
- project_bound_deterministic_authority_audit_and_SARIF_projection
|
|
13
|
+
- git_aware_exact_read_only_authority_change_review
|
|
14
|
+
- stable_current_worktree_authority_to_package_script_target_evidence
|
|
15
|
+
- optional_L3_repository_governance_not_authority_admission
|
|
16
|
+
canonical_boundary:
|
|
17
|
+
host_product_authority: .nimi/spec/**/*.authority.{yaml,md}
|
|
18
|
+
sole_conformance_gate: nimicoding_authority_check_complete_.nimi/spec
|
|
19
|
+
historical_format_inference: forbidden
|
|
20
|
+
product_semantic_generation: forbidden
|
|
21
|
+
surface_separation:
|
|
22
|
+
public: [documented_CLI, package_documentation]
|
|
23
|
+
canonical_project_owned: .nimi/spec/**/*.authority.{yaml,md}
|
|
24
|
+
projected_AI_visible_package_owned: [.nimi/methodology/authority-authoring.yaml, AGENTS.md#managed-block, CLAUDE.md#managed-block]
|
|
25
|
+
local_non_authority: .nimi/local/**
|
|
26
|
+
package_internal: [authority_grammar_contracts, AuthorityIR, SourceMap, compiler_implementation]
|
|
11
27
|
out_of_scope:
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
host_product_authority: .nimi/spec
|
|
26
|
-
managed_projection_roots: [.nimi/config, .nimi/contracts, .nimi/methodology]
|
|
27
|
-
local_non_authority_root: .nimi/local
|
|
28
|
+
- reconstruction_taxonomy_tables_guidance_registries_and_generation_audits
|
|
29
|
+
- profile_specific_authority_validation
|
|
30
|
+
- planning_task_lifecycle_delegation_execution_review_or_approval
|
|
31
|
+
- host_workflow_command_aggregation
|
|
32
|
+
- sqlite_cache_incremental_embedding_semantic_search_visualization_AI_execution_or_Atlas
|
|
33
|
+
claims:
|
|
34
|
+
discovery: bounded_deterministic_exact_filtered_lexical_candidates_with_SourceMapped_field_snippets_and_optional_M1_direct_authored_relation_preview_not_semantic_search_selection_context_or_absence_proof
|
|
35
|
+
context: complete_declared_outgoing_interpretation_closure_not_complete_task_context
|
|
36
|
+
impact: declared_review_obligation_not_sync_or_completion_proof
|
|
37
|
+
graph: complete_bounded_explicit_relation_navigation_not_semantic_inference_or_raw_IR
|
|
38
|
+
audit: governance_bound_verifier_results_not_prose_predicate_inference_or_plugin_execution
|
|
39
|
+
review: immutable_base_OID_and_stable_worktree_exact_snapshots_composed_through_existing_compiler_diff_impact_and_current_audit_oracles
|
|
40
|
+
evidence: exact_identity_bound_package_script_target_reachability_and_external_supplied_observations_not_command_execution_test_success_runtime_reachability_or_conformance_attestation
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
buildBlueprintAuditPayload,
|
|
3
|
-
formatBlueprintAuditPayload,
|
|
4
|
-
writeBlueprintAuditArtifact,
|
|
5
|
-
} from "../lib/shared.mjs";
|
|
6
|
-
import { localize } from "../lib/ui.mjs";
|
|
7
|
-
|
|
8
|
-
function parseBlueprintAuditOptions(args) {
|
|
9
|
-
const options = {
|
|
10
|
-
json: false,
|
|
11
|
-
writeLocal: false,
|
|
12
|
-
blueprintRoot: null,
|
|
13
|
-
canonicalRoot: null,
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
for (let index = 0; index < args.length; index += 1) {
|
|
17
|
-
const arg = args[index];
|
|
18
|
-
|
|
19
|
-
if (arg === "--json") {
|
|
20
|
-
options.json = true;
|
|
21
|
-
continue;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (arg === "--write-local") {
|
|
25
|
-
options.writeLocal = true;
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
if (arg === "--blueprint-root" || arg === "--canonical-root") {
|
|
30
|
-
const next = args[index + 1];
|
|
31
|
-
if (!next || next.startsWith("--")) {
|
|
32
|
-
return {
|
|
33
|
-
ok: false,
|
|
34
|
-
error: `${localize(
|
|
35
|
-
`nimicoding blueprint-audit refused: ${arg} requires a value.`,
|
|
36
|
-
`nimicoding blueprint-audit 已拒绝:${arg} 需要一个值。`,
|
|
37
|
-
)}\n`,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (arg === "--blueprint-root") {
|
|
42
|
-
options.blueprintRoot = next;
|
|
43
|
-
} else {
|
|
44
|
-
options.canonicalRoot = next;
|
|
45
|
-
}
|
|
46
|
-
index += 1;
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return {
|
|
51
|
-
ok: false,
|
|
52
|
-
error: `${localize(
|
|
53
|
-
`nimicoding blueprint-audit refused: unknown option ${arg}.`,
|
|
54
|
-
`nimicoding blueprint-audit 已拒绝:未知选项 ${arg}。`,
|
|
55
|
-
)}\n`,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return {
|
|
60
|
-
ok: true,
|
|
61
|
-
options,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export async function runBlueprintAudit(args) {
|
|
66
|
-
const parsed = parseBlueprintAuditOptions(args);
|
|
67
|
-
if (!parsed.ok) {
|
|
68
|
-
process.stderr.write(parsed.error);
|
|
69
|
-
return 2;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
const payload = await buildBlueprintAuditPayload(process.cwd(), parsed.options);
|
|
73
|
-
if (payload.inputError) {
|
|
74
|
-
process.stderr.write(payload.error);
|
|
75
|
-
return payload.exitCode;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (parsed.options.writeLocal) {
|
|
79
|
-
await writeBlueprintAuditArtifact(process.cwd(), payload);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if (parsed.options.json) {
|
|
83
|
-
process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`);
|
|
84
|
-
} else {
|
|
85
|
-
process.stdout.write(formatBlueprintAuditPayload(payload));
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return payload.exitCode;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export { parseBlueprintAuditOptions };
|