@nimiplatform/nimi-coding 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/CONTRIBUTING.md +3 -3
- package/README.md +297 -41
- package/README.zh-CN.md +306 -31
- package/bin/nimicoding.mjs +1 -1
- package/cli/commands/authority.mjs +804 -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 +182 -0
- package/cli/dev/check-product-conformance.mjs +889 -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 +567 -0
- package/cli/lib/authority/change-candidates.mjs +807 -0
- package/cli/lib/authority/closed-sets.mjs +645 -0
- package/cli/lib/authority/compile.mjs +92 -0
- package/cli/lib/authority/compiled-snapshot.mjs +143 -0
- package/cli/lib/authority/consumers.mjs +520 -0
- package/cli/lib/authority/diagnostics.mjs +93 -0
- package/cli/lib/authority/diff.mjs +310 -0
- package/cli/lib/authority/discover.mjs +447 -0
- package/cli/lib/authority/format.mjs +169 -0
- package/cli/lib/authority/git-snapshot.mjs +720 -0
- package/cli/lib/authority/graph.mjs +351 -0
- package/cli/lib/authority/impact.mjs +125 -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 +212 -0
- package/cli/lib/authority/sarif.mjs +174 -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 +308 -0
- package/cli/lib/authority/surface.mjs +97 -0
- package/cli/lib/authority/terms.mjs +422 -0
- package/cli/lib/authority/tracked-text.mjs +70 -0
- package/cli/lib/authority/validate.mjs +300 -0
- package/cli/lib/bootstrap.mjs +55 -71
- package/cli/lib/doctor.mjs +40 -123
- package/cli/lib/entrypoints.mjs +104 -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-scope-bindings.schema.yaml +15 -0
- package/contracts/authority-source.schema.yaml +58 -0
- package/contracts/authority-verifier-bindings.schema.yaml +31 -0
- package/methodology/authority-authoring.yaml +127 -0
- package/methodology/core.yaml +34 -27
- package/package.json +10 -6
- package/spec/authority-anchors.yaml +99 -0
- package/spec/authority-audit.yaml +89 -0
- package/spec/authority-authoring.yaml +137 -0
- package/spec/authority-change-candidates.yaml +146 -0
- package/spec/authority-closed-sets.yaml +65 -0
- package/spec/authority-consumers.yaml +77 -0
- package/spec/authority-context.yaml +50 -0
- package/spec/authority-discovery.yaml +119 -0
- package/spec/authority-graph.yaml +59 -0
- package/spec/authority-impact.yaml +61 -0
- package/spec/authority-review.yaml +71 -0
- package/spec/authority-terms.yaml +63 -0
- package/spec/product-scope.yaml +37 -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 -144
- 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,137 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
spec:
|
|
3
|
+
id: nimicoding.authority-authoring.v2
|
|
4
|
+
owner: nimi-coding
|
|
5
|
+
status: active
|
|
6
|
+
product_claim: installed_package_deterministically_formats_checks_and_compiles_canonical_authority
|
|
7
|
+
source_authority: downstream_project_.nimi/spec_containing_only_canonical_authority_profiles
|
|
8
|
+
profiles:
|
|
9
|
+
file_suffixes: [.authority.yaml, .authority.md]
|
|
10
|
+
yaml:
|
|
11
|
+
document: closed_top_level_mapping_with_exact_format_and_non_empty_units_sequence_using_YAML_1.2_core_values
|
|
12
|
+
container_fields: [format, owner, scope, units]
|
|
13
|
+
container_defaults:
|
|
14
|
+
owner: applies_to_every_unit_that_omits_owner
|
|
15
|
+
scope: one_scope_value_applied_to_every_active_rule_that_omits_scope
|
|
16
|
+
definitions_do_not_inherit_scope: true
|
|
17
|
+
unit_omission_defaults:
|
|
18
|
+
lifecycle: active
|
|
19
|
+
relations: []
|
|
20
|
+
both_levels_absent: fail_closed_no_inference
|
|
21
|
+
units_per_file: 1_to_N
|
|
22
|
+
unit_identity: explicit_ID_independent_of_file_name_source_index_move_order_or_regroup
|
|
23
|
+
source_order: preserved_for_author_reading_but_non_semantic
|
|
24
|
+
formatter_inputs: [block_collections, syntax_clear_flow_collections, syntax_clear_block_scalars]
|
|
25
|
+
rejected: [legacy_top_level_single_unit_mapping, empty_units, invalid_utf8, duplicate_keys, aliases, anchors, merge_keys, explicit_tags, directives, complex_keys, comments]
|
|
26
|
+
markdown:
|
|
27
|
+
units_per_file: 1
|
|
28
|
+
shared_with_yaml: restricted_lexical_and_syntax_rules_only_not_document_fields
|
|
29
|
+
front_matter_fields: [format, id, kind, owner, lifecycle, modality, scope, relations]
|
|
30
|
+
forbidden_front_matter_fields: [units]
|
|
31
|
+
title: one_plain_level_one_line_required_for_admission_but_omittable_during_fmt
|
|
32
|
+
active_definition_sections: [Meaning]
|
|
33
|
+
active_rule_sections: [Statement, Condition, Failure]
|
|
34
|
+
removed_sections: [Removal reason]
|
|
35
|
+
section_body: exactly_one_plain_text_line
|
|
36
|
+
rejected: [extra_or_duplicate_headings, prose_outside_slots, lists, blockquotes, thematic_breaks, fences, html, links, references, emphasis, comments, trailing_content]
|
|
37
|
+
fields:
|
|
38
|
+
yaml_document_required: [format, units]
|
|
39
|
+
yaml_document_optional: [owner, scope]
|
|
40
|
+
unit_common_required: [id, kind, title]
|
|
41
|
+
unit_common_resolved_from_container_or_unit: [owner, lifecycle, relations]
|
|
42
|
+
markdown_frontmatter_also_requires: [format]
|
|
43
|
+
format: nimicoding.authority/v2
|
|
44
|
+
identifier: dot_separated_lowercase_segments_start_and_end_alphanumeric
|
|
45
|
+
kinds: [rule, definition]
|
|
46
|
+
lifecycles: [active, removed]
|
|
47
|
+
active_definition:
|
|
48
|
+
required: [meaning]
|
|
49
|
+
forbidden: [modality, scope, statement, condition, failure, reason]
|
|
50
|
+
active_rule:
|
|
51
|
+
required: [modality, scope, statement, condition, failure]
|
|
52
|
+
modalities: [must, must_not]
|
|
53
|
+
forbidden: [meaning, reason]
|
|
54
|
+
removed:
|
|
55
|
+
required: [reason]
|
|
56
|
+
forbidden: [meaning, modality, scope, statement, condition, failure]
|
|
57
|
+
text_values:
|
|
58
|
+
fields: [title, meaning, statement, condition, failure, reason]
|
|
59
|
+
unicode: non_empty_trimmed_well_formed_scalar_sequence
|
|
60
|
+
forbidden_line_break_code_points: [U+000A, U+000B, U+000C, U+000D, U+0085, U+2028, U+2029]
|
|
61
|
+
yaml_escaped_values: validated_after_parse_by_check_and_compile
|
|
62
|
+
fmt_semantics: value_preserving_and_not_evaluated
|
|
63
|
+
field_classes:
|
|
64
|
+
normative_governance: [id, kind, owner, lifecycle]
|
|
65
|
+
normative_definition: [meaning]
|
|
66
|
+
normative_rule: [modality, scope, statement, condition, failure]
|
|
67
|
+
normative_graph: [relations, type, target]
|
|
68
|
+
non_normative_metadata: [title, reason]
|
|
69
|
+
relations:
|
|
70
|
+
container: may_be_missing_only_during_draft_formatting
|
|
71
|
+
item_shape: exactly_non_empty_string_type_and_target
|
|
72
|
+
formatting: deterministic_type_then_target_sort_preserving_duplicates_and_unknown_string_types
|
|
73
|
+
applies_to: active_rule_to_active_definition_at_least_one_per_active_rule
|
|
74
|
+
supersedes: active_or_removed_to_removed_same_kind_max_one_incoming_and_outgoing_acyclic
|
|
75
|
+
semantic_failures: [unknown_type, duplicate_edge, self_edge, dangling_target, type_mismatch, cardinality, cycle]
|
|
76
|
+
commands:
|
|
77
|
+
fmt:
|
|
78
|
+
syntax: nimicoding authority fmt <file> [--check] [--json]
|
|
79
|
+
semantic_status: not_evaluated
|
|
80
|
+
writes: one_source_file_atomically_unless_check
|
|
81
|
+
structural_discriminants: [format, kind, lifecycle]
|
|
82
|
+
invention: forbidden
|
|
83
|
+
check:
|
|
84
|
+
syntax: nimicoding authority check <path> [--scope-bindings <file>] [--json]
|
|
85
|
+
writes: none
|
|
86
|
+
no_scope_bindings_flag: exact_existing_check_behavior
|
|
87
|
+
scope_bindings:
|
|
88
|
+
format: nimicoding.scope-bindings/v1
|
|
89
|
+
document: closed_mapping_with_exact_format_and_non_empty_scopes_sequence
|
|
90
|
+
scope_entry: closed_mapping_with_one_non_empty_single_line_scope_and_non_empty_bindings_sequence
|
|
91
|
+
binding_entry: closed_mapping_with_kind_and_non_empty_single_line_value
|
|
92
|
+
binding_kinds: [path_glob, module, command]
|
|
93
|
+
duplicate_scope: rejected
|
|
94
|
+
enforcement: exact_bidirectional_set_equality_between_registered_scopes_and_active_rule_scope_use
|
|
95
|
+
unregistered_use_diagnostic: every_scope_and_using_unit_ID
|
|
96
|
+
dead_registration_diagnostic: every_registered_scope_without_active_rule_use
|
|
97
|
+
repository_path_resolution: forbidden
|
|
98
|
+
partial_result: forbidden
|
|
99
|
+
compile:
|
|
100
|
+
syntax: nimicoding authority compile <path> [--json]
|
|
101
|
+
writes: none
|
|
102
|
+
source_format: exact_nimicoding.authority/v2_only
|
|
103
|
+
ir_visibility: package_private
|
|
104
|
+
public_json: operation_counts_and_diagnostics_only
|
|
105
|
+
anchors:
|
|
106
|
+
syntax: nimicoding authority anchors <repository-path> --spec <corpus-path> [--scope-bindings <file>] [--embedded-paths] --max-units <positive-safe-integer> --max-anchors <positive-safe-integer> --max-bytes <positive-safe-integer> [--json]
|
|
107
|
+
writes_and_execution: none
|
|
108
|
+
active_fields: [meaning, statement, condition, failure]
|
|
109
|
+
grammar: closed_maximal_non_whitespace_path_and_pnpm_script_tokens_defined_by_nimicoding.authority-anchors.v1
|
|
110
|
+
resolution: exact_Git_tracked_file_or_root_package_script_membership_without_inference
|
|
111
|
+
scope_path_globs: every_path_glob_matches_at_least_one_Git_tracked_file
|
|
112
|
+
module_and_command_bindings: structurally_admitted_but_not_resolved
|
|
113
|
+
budgets: complete_active_units_anchor_occurrences_and_compact_UTF-8_product_bytes
|
|
114
|
+
partial_result: forbidden
|
|
115
|
+
compiler:
|
|
116
|
+
ordering: [unit_id, scope_lexical, relation_type_then_target]
|
|
117
|
+
output: [AuthorityIR, SourceMap]
|
|
118
|
+
source_map: every_AuthorityIR_leaf_uses_its_actual_IR_JSON_pointer_and_exact_source_file_range_and_YAML_source_pointer_under_/units/source_index
|
|
119
|
+
non_ir_source_entries: forbidden
|
|
120
|
+
partial_success: forbidden
|
|
121
|
+
diagnostics:
|
|
122
|
+
range: one_based_unicode_scalar_half_open
|
|
123
|
+
missing_field: canonical_insertion_point_in_containing_mapping_or_section
|
|
124
|
+
conflicts: primary_location_plus_sorted_related_locations
|
|
125
|
+
repair: decision_category_only_never_product_semantic_value
|
|
126
|
+
runtime_authority:
|
|
127
|
+
contracts: installed_package_only
|
|
128
|
+
downstream_projection_cannot_change_compiler: true
|
|
129
|
+
historical_document_compatibility_or_inference: forbidden
|
|
130
|
+
sole_downstream_conformance_gate: authority_check_on_complete_canonical_root
|
|
131
|
+
admitted_downstream_consumers: [bounded_lexical_candidate_discovery, exact_query, bounded_context, bounded_graph_navigation, static_lexical_anchor_validation, embedded_repository_path_anchor_validation, corpus_consumer_and_gate_wiring_report, corpus_term_index_and_code_cross_reference, closed_vocabulary_pairing_report, project_bound_deterministic_audit, SARIF_projection, semantic_diff, declared_impact]
|
|
132
|
+
report_product_contracts:
|
|
133
|
+
consumers: nimicoding.authority-consumers.v1
|
|
134
|
+
terms: nimicoding.authority-terms.v1
|
|
135
|
+
closed-sets: nimicoding.authority-closed-sets.v1
|
|
136
|
+
anchors: nimicoding.authority-anchors.v1
|
|
137
|
+
not_admitted: [historical_format_reconstruction, profile_specific_validation, multi_unit_markdown, sqlite, cache, incremental, semantic_search, embedding, visualization, ai_execution, Atlas, qualification, final_cutover]
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
spec:
|
|
3
|
+
id: nimicoding.authority-change-candidates.v1
|
|
4
|
+
owner: nimi-coding
|
|
5
|
+
status: active
|
|
6
|
+
product_claim: complete_deterministic_change_derived_recall_of_current_active_non_root_authority_candidates_over_caller_requested_explicit_exact_channels
|
|
7
|
+
source:
|
|
8
|
+
before: one_complete_independently_admitted_package_private_AuthorityIR_and_SourceMap
|
|
9
|
+
after: one_complete_independently_admitted_package_private_AuthorityIR_and_SourceMap
|
|
10
|
+
changes: complete_semantic_diff_between_the_two_admitted_inputs
|
|
11
|
+
command:
|
|
12
|
+
syntax: nimicoding authority change-candidates <before-path> <after-path> --channels <comma-separated-closed-set> --max-candidates <positive-safe-integer> --max-reasons <positive-safe-integer> --max-bytes <positive-safe-integer> [--json]
|
|
13
|
+
channel_selection:
|
|
14
|
+
required: one_non_empty_array
|
|
15
|
+
admitted: [owner, scope, changed_term, direct_relation, definition_identity, definition_title]
|
|
16
|
+
unknown_duplicate_non_string_or_empty: AUTH_CHANGE_CANDIDATES_CHANNELS_with_null_product
|
|
17
|
+
input_order: non_semantic
|
|
18
|
+
output_order: canonical_admitted_channel_order
|
|
19
|
+
completeness_scope: exact_union_of_requested_channels_only
|
|
20
|
+
unrequested_channels: not_evaluated_and_do_not_recall_or_emit_reasons
|
|
21
|
+
roots:
|
|
22
|
+
selection: every_exact_unit_ID_named_by_at_least_one_complete_semantic_diff_change
|
|
23
|
+
included_operations: [unit_added, modified, added, removed]
|
|
24
|
+
metadata_only_changes: included_because_owner_and_title_rename_context_are_product_relevant_recall_inputs
|
|
25
|
+
formatting_profile_file_move_container_regroup_and_source_order_only_change: no_root
|
|
26
|
+
root_record_fields: [id, changes, before, after]
|
|
27
|
+
change_fields: [operation, pointer]
|
|
28
|
+
side_fields: [kind, owner, lifecycle, title, location]
|
|
29
|
+
absent_side: explicit_null
|
|
30
|
+
candidate_universe:
|
|
31
|
+
source: after_only
|
|
32
|
+
lifecycle: active_only
|
|
33
|
+
roots: excluded
|
|
34
|
+
removed_tombstones: excluded
|
|
35
|
+
admission: at_least_one_exact_recall_reason_from_one_declared_channel
|
|
36
|
+
ordering: lexical_unit_ID
|
|
37
|
+
recall_channels:
|
|
38
|
+
owner:
|
|
39
|
+
match: exact_owner_equality_between_candidate_and_each_before_or_after_root
|
|
40
|
+
reason_witness: exact_raw_owner_and_both_SourceMap_locations
|
|
41
|
+
scope:
|
|
42
|
+
match: exact_scope_membership_shared_by_an_active_rule_candidate_and_each_before_or_after_active_rule_root
|
|
43
|
+
reason_witness: exact_raw_scope_and_both_SourceMap_locations
|
|
44
|
+
changed_term:
|
|
45
|
+
root_fields: [title, meaning, statement, condition, failure]
|
|
46
|
+
root_values: only_normalized_terms_present_on_one_changed_field_side_and_absent_from_the_other_side_plus_every_after_term_of_a_unit_added_root
|
|
47
|
+
candidate_fields: [title, meaning, statement, condition, failure]
|
|
48
|
+
normalization: [Unicode_NFKC, split_camelCase_boundary, deterministic_lowercase, Unicode_Letter_or_Number_runs, deduplicate_terms]
|
|
49
|
+
match: one_or_more_exact_normalized_terms_shared_by_one_changed_root_field_and_one_candidate_field
|
|
50
|
+
excluded: [unchanged_root_text, owner, scope, lifecycle, relations, removal_reason, fuzzy_matching, stopwords, synonyms, translation, embedding, model_inference]
|
|
51
|
+
unchanged_terms_within_a_changed_field: excluded
|
|
52
|
+
reason_witness: complete_shared_changed_term_set_plus_both_raw_fields_and_both_SourceMap_locations
|
|
53
|
+
direct_relation:
|
|
54
|
+
source: complete_before_and_after_authored_applies_to_or_supersedes_edges
|
|
55
|
+
match: candidate_is_the_exact_source_or_target_endpoint_of_an_edge_incident_to_a_root
|
|
56
|
+
direction: incoming_or_outgoing_relative_to_the_root_while_preserving_authored_source_and_target
|
|
57
|
+
reason_witness: complete_authored_edge_with_source_relation_target_locations_plus_root_and_candidate_ID_locations
|
|
58
|
+
definition_identity:
|
|
59
|
+
anchors:
|
|
60
|
+
- a_definition_root_on_the_same_side
|
|
61
|
+
- an_exact_definition_target_of_a_relation_authored_by_a_root_on_the_same_side
|
|
62
|
+
match:
|
|
63
|
+
- candidate_authors_a_relation_to_the_exact_same_definition_ID
|
|
64
|
+
- candidate_raw_text_contains_the_exact_NFKC_definition_ID_with_identifier_token_boundaries
|
|
65
|
+
reason_witness: exact_definition_ID_title_and_locations_root_reference_and_candidate_field_or_relation
|
|
66
|
+
definition_title:
|
|
67
|
+
anchors: same_as_definition_identity
|
|
68
|
+
match: candidate_raw_text_contains_the_complete_exact_NFKC_case_sensitive_definition_title_with_Unicode_Letter_Number_boundaries
|
|
69
|
+
excluded: [partial_title, case_fold, fuzzy_phrase, synonym, translation]
|
|
70
|
+
reason_witness: exact_definition_ID_title_and_locations_root_reference_and_candidate_raw_field
|
|
71
|
+
composition:
|
|
72
|
+
selection: set_union_of_every_candidate_admitted_by_any_requested_channel_on_either_side
|
|
73
|
+
reasons: every_unique_exact_requested_channel_side_root_and_witness_tuple
|
|
74
|
+
duplicate_candidates_and_reasons: suppressed
|
|
75
|
+
ranking_top_k_stopwords_frequency_cutoff_or_heuristic_reduction: forbidden
|
|
76
|
+
zero_candidates: successful_complete_empty_union
|
|
77
|
+
semantic_judgment: none
|
|
78
|
+
candidate:
|
|
79
|
+
fields: [id, kind, owner, lifecycle, title, modality, scope, rawFields, relations, primaryIdLocation, reasons]
|
|
80
|
+
modality: exact_must_or_must_not_for_rules_and_explicit_null_for_definitions
|
|
81
|
+
scope: exact_after_scope_for_rules_and_empty_for_definitions
|
|
82
|
+
raw_fields: [meaning, statement, condition, failure]
|
|
83
|
+
absent_raw_fields: explicit_null
|
|
84
|
+
relations: complete_after_authored_relation_records
|
|
85
|
+
reason_fields: [channel, side, rootId, witness]
|
|
86
|
+
reason_channels: [owner, scope, changed_term, direct_relation, definition_identity, definition_title]
|
|
87
|
+
side: before_or_after
|
|
88
|
+
locations:
|
|
89
|
+
fields: [file, range, sourcePointer]
|
|
90
|
+
paths: relative_to_the_corresponding_input_root_when_inside_it
|
|
91
|
+
payload:
|
|
92
|
+
format: nimicoding.authority-change-candidates/v1
|
|
93
|
+
fields: [format, complete, requestedChannels, roots, candidates, counts, budgets, policy]
|
|
94
|
+
requestedChannels: canonical_ordered_exact_caller_set
|
|
95
|
+
complete: true_only_when_the_entire_requested_channel_union_and_every_requested_channel_reason_are_returned
|
|
96
|
+
count_fields: [beforeUnits, afterUnits, changedRoots, eligibleAfterUnits, candidates, reasons]
|
|
97
|
+
budget_fields: [maxCandidates, maxReasons, maxBytes]
|
|
98
|
+
policy_fields: [roots, candidateUniverse, recall, changedTerms, ordering, interpretation]
|
|
99
|
+
excluded:
|
|
100
|
+
- score_or_rank
|
|
101
|
+
- truncated_or_partial_candidates
|
|
102
|
+
- inferred_relation
|
|
103
|
+
- conflict_or_consistency_finding
|
|
104
|
+
- retirement_or_replacement_recommendation
|
|
105
|
+
- authority_pass_or_fail
|
|
106
|
+
- implementation_or_test_conformance
|
|
107
|
+
budgets:
|
|
108
|
+
max_candidates: required_explicit_positive_safe_integer_over_the_complete_requested_channel_candidate_union
|
|
109
|
+
max_reasons: required_explicit_positive_safe_integer_over_all_unique_exact_requested_channel_reasons
|
|
110
|
+
max_bytes: required_explicit_positive_safe_integer_over_UTF-8_bytes_of_compact_JSON_stringify_complete_payload
|
|
111
|
+
candidate_or_reason_overflow: AUTH_CHANGE_CANDIDATES_BUDGET_with_null_product_and_partial_false
|
|
112
|
+
byte_overflow: AUTH_CHANGE_CANDIDATES_BUDGET_with_null_product_and_partial_false
|
|
113
|
+
silent_reduction: forbidden
|
|
114
|
+
evaluation_stages:
|
|
115
|
+
- exact_candidate_ID_union_using_only_light_indexes_and_match_descriptors
|
|
116
|
+
- exact_unique_logical_reason_count_without_global_reason_key_storage_or_SourceMap_witness_objects
|
|
117
|
+
- full_reason_candidate_root_and_payload_materialization_only_after_candidate_and_reason_budgets_pass
|
|
118
|
+
candidate_overflow: return_exact_required_candidate_count_without_reason_witness_candidate_record_or_payload_materialization
|
|
119
|
+
reason_overflow: return_exact_required_reason_count_without_reason_witness_candidate_record_or_payload_materialization
|
|
120
|
+
duplicate_match_occurrences: collapsed_by_each_channel_visitor_before_reason_counting
|
|
121
|
+
indexing:
|
|
122
|
+
snapshot_indexes: [by_ID, by_owner, by_scope, incoming_relations, outgoing_relations, by_container]
|
|
123
|
+
changed_terms: one_precomputed_candidate_field_term_set_plus_exact_term_to_candidate_field_inverted_index_per_side
|
|
124
|
+
definition_patterns:
|
|
125
|
+
normalization: each_candidate_text_field_and_each_unique_definition_identity_or_title_pattern_is_NFKC_normalized_once_per_index_build
|
|
126
|
+
matching: one_deterministic_Aho_Corasick_multi_pattern_scan_per_candidate_field_and_stage
|
|
127
|
+
boundaries: exact_identity_or_Unicode_Letter_Number_title_boundaries_are_checked_on_each_match
|
|
128
|
+
direct_relations: snapshot_adjacency_indexes_without_candidate_linear_search
|
|
129
|
+
persistence: none_indexes_are_transient_and_derived_from_the_two_immutable_compiler_snapshots
|
|
130
|
+
fail_closed:
|
|
131
|
+
invalid_before_or_after_authority: preserve_complete_side_qualified_diff_or_compiler_diagnostics
|
|
132
|
+
invalid_transition: preserve_AUTH_DIFF_TRANSITION_INVALID
|
|
133
|
+
invalid_channels: AUTH_CHANGE_CANDIDATES_CHANNELS
|
|
134
|
+
invalid_runtime_budget: AUTH_CHANGE_CANDIDATES_BUDGET_with_null_product
|
|
135
|
+
partial_product: forbidden
|
|
136
|
+
boundaries:
|
|
137
|
+
read_only: true
|
|
138
|
+
writes_or_durable_artifacts: none
|
|
139
|
+
public_JS_exports: none
|
|
140
|
+
authority_or_product_semantic_decision: not_claimed
|
|
141
|
+
natural_language_contradiction_detection: not_admitted
|
|
142
|
+
relation_generation_or_repair: not_admitted
|
|
143
|
+
hard_cut_workflow_or_report: host_owned_not_admitted
|
|
144
|
+
implementation_code_test_or_gate_location: separate_product_not_included
|
|
145
|
+
source_container_proximity_annotation: not_included_because_it_is_non_semantic_unbounded_and_derivable_from_returned_locations
|
|
146
|
+
cache_SQLite_embedding_or_persistent_index: none
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
spec:
|
|
3
|
+
id: nimicoding.authority-closed-sets.v1
|
|
4
|
+
owner: nimi-coding
|
|
5
|
+
status: active
|
|
6
|
+
product_claim: bounded_static_pairing_of_closed_vocabularies_stated_in_active_authority_text_against_proto_enums_and_plain_scalar_sequences_in_tracked_YAML_implementation_sources
|
|
7
|
+
command: nimicoding authority closed-sets <repository-path> --spec <corpus-path> --max-units <positive-safe-integer> --max-sets <positive-safe-integer> --max-bytes <positive-safe-integer> [--json]
|
|
8
|
+
surface:
|
|
9
|
+
report_format: nimicoding.authority-closed-sets/v1
|
|
10
|
+
corpus_root: repository_authority_corpus_only
|
|
11
|
+
boolean_flags: [json]
|
|
12
|
+
value_flags: [spec]
|
|
13
|
+
integer_flags: [max-units, max-sets, 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:
|
|
25
|
+
shared_lexicon: normative_field_set_is_one_shared_definition_across_report_products
|
|
26
|
+
scanned: [meaning, statement, condition, failure]
|
|
27
|
+
rationale: a_rule_states_its_closed_vocabulary_in_the_condition_or_failure_as_often_as_in_the_statement
|
|
28
|
+
canonical_extraction:
|
|
29
|
+
shape: comma_run_enumeration_with_optional_and_or_tail
|
|
30
|
+
minimum_members: 3
|
|
31
|
+
minimum_commas: 1
|
|
32
|
+
rejected: multi_word_items_and_runs_continuing_into_prose
|
|
33
|
+
implementation_extraction:
|
|
34
|
+
proto_enums:
|
|
35
|
+
scope: all_tracked_.proto_files
|
|
36
|
+
values: value_names_with_their_longest_underscore_boundary_prefix_stripped
|
|
37
|
+
config_yaml_sequences:
|
|
38
|
+
scope: all_tracked_.yaml_and_.yml_files_excluding_the_authority_corpus
|
|
39
|
+
values: at_least_three_plain_scalar_tokens
|
|
40
|
+
inventory:
|
|
41
|
+
shape: implementation_kind_inventory_v1
|
|
42
|
+
tracked_files: complete_git_inventory_count
|
|
43
|
+
scanned_files: counts_by_proto_and_yaml_kind
|
|
44
|
+
exclusions:
|
|
45
|
+
every_excluded_file_reported: true
|
|
46
|
+
reasons: [authority-corpus, binary-content, not-utf8, not-a-scanned-kind]
|
|
47
|
+
accounting: tracked_files_equals_proto_scanned_plus_yaml_scanned_plus_excluded_files
|
|
48
|
+
pairing:
|
|
49
|
+
basis: member_overlap_inference_with_no_supplied_mapping
|
|
50
|
+
suppressed: pairs_whose_canonical_group_is_a_pure_subset_of_another_pair_for_the_same_set
|
|
51
|
+
unpaired: reported_as_a_first_class_inventory_never_as_silence
|
|
52
|
+
budgets:
|
|
53
|
+
max_units: complete_active_unit_set_must_fit
|
|
54
|
+
max_sets: complete_implementation_set_inventory_must_fit
|
|
55
|
+
max_bytes: inputBytes_complete_decoded_authority_and_implementation_input_must_fit
|
|
56
|
+
exceeded: refuse_with_one_diagnostic_and_no_partial_inventory_or_pairing
|
|
57
|
+
result:
|
|
58
|
+
trackedPathSetDigest: sha256_hex_of_nimicoding.repository-inventory/v1_canonical_tracked_path_set_preimage
|
|
59
|
+
complete: true_only_when_every_admitted_input_was_read_and_paired
|
|
60
|
+
byte_counts:
|
|
61
|
+
scannedBytes: normative_authority_fields_plus_decoded_proto_and_YAML_extractor_inputs
|
|
62
|
+
inputBytes: complete_decoded_authority_corpus_plus_decoded_proto_and_YAML_extractor_inputs
|
|
63
|
+
partial: never
|
|
64
|
+
findings_change_exit_code: false
|
|
65
|
+
determinism: identical_inputs_produce_byte_identical_output
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
spec:
|
|
3
|
+
id: nimicoding.authority-consumers.v1
|
|
4
|
+
owner: nimi-coding
|
|
5
|
+
status: active
|
|
6
|
+
product_claim: bounded_static_report_of_which_tracked_files_reference_the_repository_authority_corpus_and_which_package_script_gates_any_workflow_can_reach
|
|
7
|
+
command: nimicoding authority consumers <repository-path> --spec <corpus-path> [--external-root <scheme>=<path>]... --max-files <positive-safe-integer> --max-refs <positive-safe-integer> --max-bytes <positive-safe-integer> [--json]
|
|
8
|
+
surface:
|
|
9
|
+
report_format: nimicoding.authority-consumers/v1
|
|
10
|
+
corpus_root: repository_authority_corpus_only
|
|
11
|
+
boolean_flags: [json]
|
|
12
|
+
value_flags: [spec]
|
|
13
|
+
integer_flags: [max-files, max-refs, max-bytes]
|
|
14
|
+
repeatable_flags: [external-root]
|
|
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
|
+
scan_selection: every_tracked_non_corpus_file_classified_by_NUL_and_fresh_UTF-8_probe_regardless_of_extension_plus_root_package.json
|
|
21
|
+
exclusions: every_authority_corpus_binary_content_and_non_UTF-8_file_named_with_reason_in_fileInventory
|
|
22
|
+
writes_or_execution: forbidden
|
|
23
|
+
corpus:
|
|
24
|
+
root: exact_repository_relative_.nimi/spec_resolved_realpath
|
|
25
|
+
rationale: a_fixture_directory_must_not_be_able_to_stand_in_as_the_canonical_corpus
|
|
26
|
+
external_roots:
|
|
27
|
+
shape: repeatable_<scheme>=<path>_with_lowercase_scheme_and_one_directory
|
|
28
|
+
scheme_knowledge: none_this_tool_knows_no_particular_project_scheme
|
|
29
|
+
absent_scheme: reference_is_externalUnresolved_never_dead
|
|
30
|
+
reference_grammar:
|
|
31
|
+
escaped_line_continuation: exact_backslash_LF_or_backslash_CRLF_is_removed_for_matching_while_locations_use_the_original_source_line
|
|
32
|
+
source_string_escape_boundary: one_backslash_followed_by_a_common_escape_starter_ends_the_local_path_while_two_or_more_backslashes_remain_a_Windows_separator_run
|
|
33
|
+
local_literal:
|
|
34
|
+
shape: .nimi<separator_run>spec_optionally_followed_by_further_segments
|
|
35
|
+
separators: forward_or_back_slash_runs_because_source_literals_escape_backslashes
|
|
36
|
+
bare_root_admitted: true
|
|
37
|
+
terminal_period_disambiguation:
|
|
38
|
+
raw_target_or_prefix_exists: preserve_raw_target
|
|
39
|
+
raw_absent_and_removing_exactly_one_period_resolves: classify_the_single_period_as_sentence_punctuation
|
|
40
|
+
raw_and_single_period_stripped_both_absent: preserve_raw_target_and_report_dead
|
|
41
|
+
raw_and_single_period_stripped_both_exist: preserve_raw_target
|
|
42
|
+
excluded: glob_star_or_angle_bracket_placeholder
|
|
43
|
+
local_constructor:
|
|
44
|
+
shape: adjacent_string_literals_beginning_with_.nimi_then_spec
|
|
45
|
+
reconstruction: only_while_every_further_segment_is_a_string_literal
|
|
46
|
+
non_literal_continuation: reported_as_unresolved_never_dropped
|
|
47
|
+
external:
|
|
48
|
+
shape: <scheme>:spec/<path>[#<unit-id>]
|
|
49
|
+
unit_id: dotted_lowercase_authority_identifier
|
|
50
|
+
canonical_path: dot_and_dot-dot_segments_forbidden_and_realpath_must_remain_within_the_declared_root
|
|
51
|
+
fragment_resolution: when_a_scheme_root_is_supplied_the_named_YAML_container_must_hold_a_unit_with_the_exact_fragment_ID
|
|
52
|
+
non_canonical_path: unresolved_with_reason_non-canonical-external-path
|
|
53
|
+
classification:
|
|
54
|
+
canonical: local_target_exists_in_the_tracked_inventory
|
|
55
|
+
canonicalDead: local_target_absent_from_the_tracked_inventory
|
|
56
|
+
externalAuthority: scheme_root_supplied_and_file_exists_and_any_supplied_fragment_names_a_unit_in_that_container
|
|
57
|
+
externalDead: scheme_root_supplied_and_file_is_absent_or_any_supplied_fragment_is_absent_with_fragment_named_in_the_report_row
|
|
58
|
+
externalUnresolved: no_root_supplied_for_the_scheme
|
|
59
|
+
unresolved: path_constructed_from_a_non_literal_segment
|
|
60
|
+
host_specific_exemptions: forbidden_historical_identity_strings_stay_visible_for_the_host_to_interpret
|
|
61
|
+
gate_wiring:
|
|
62
|
+
workflow_files: .github/workflows/*.yml_and_*.yaml
|
|
63
|
+
reachability: direct_workflow_mention_or_transitive_package_script_reference
|
|
64
|
+
orphan: no_workflow_and_no_referencing_script_and_not_a_lifecycle_script
|
|
65
|
+
budgets:
|
|
66
|
+
max_files: complete_scanned_file_set_must_fit
|
|
67
|
+
max_refs: complete_reference_set_including_unresolved_must_fit_and_the_refusal_names_that_compared_total
|
|
68
|
+
max_bytes: complete_decoded_input_must_fit
|
|
69
|
+
exceeded: refuse_with_one_diagnostic_and_no_partial_report
|
|
70
|
+
result:
|
|
71
|
+
trackedPathSetDigest: sha256_hex_of_nimicoding.repository-inventory/v1_canonical_tracked_path_set_preimage
|
|
72
|
+
complete: true_only_when_every_admitted_input_was_read_and_classified
|
|
73
|
+
partial: never
|
|
74
|
+
counts: [total, canonical, canonicalDead, externalAuthority, externalDead, externalUnresolved, unresolved]
|
|
75
|
+
file_inventory: tracked_text_inventory_v1
|
|
76
|
+
findings_change_exit_code: false
|
|
77
|
+
determinism: identical_inputs_produce_byte_identical_output
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
spec:
|
|
3
|
+
id: nimicoding.authority-context.v1
|
|
4
|
+
owner: nimi-coding
|
|
5
|
+
status: active
|
|
6
|
+
product_claim: exact_ID_returns_one_unit_or_complete_bounded_declared_outgoing_interpretation_closure_or_fails
|
|
7
|
+
source: admitted_package_private_AuthorityIR_and_SourceMap_only
|
|
8
|
+
commands:
|
|
9
|
+
query:
|
|
10
|
+
syntax: nimicoding authority query <path> <id> --max-bytes <positive-integer> [--json]
|
|
11
|
+
result: exactly_one_unit_packet
|
|
12
|
+
budget: explicit_UTF-8_packet_bytes_required
|
|
13
|
+
context:
|
|
14
|
+
syntax: nimicoding authority context <path> <id> --max-units <positive-integer> --max-bytes <positive-integer> [--json]
|
|
15
|
+
budget: explicit_unit_and_UTF-8_packet_bytes_required
|
|
16
|
+
packet:
|
|
17
|
+
format: nimicoding.authority-context/v1
|
|
18
|
+
fields: [root, closure, units, sourceMap]
|
|
19
|
+
unit_order: lexical_ID
|
|
20
|
+
source_paths: relative_to_input_root_when_inside_it
|
|
21
|
+
schemas_included: false
|
|
22
|
+
unrelated_units_outside_closure_included: false
|
|
23
|
+
corpus_note: A legitimate closure may coincidentally include every corpus unit; no unit outside the closure is attached.
|
|
24
|
+
task_context: not_claimed
|
|
25
|
+
closure:
|
|
26
|
+
direction: outgoing_recursive
|
|
27
|
+
relation_categories: [applies_to, supersedes]
|
|
28
|
+
rationale:
|
|
29
|
+
applies_to: Include definitions explicitly required to interpret a rule.
|
|
30
|
+
supersedes: Include the declared older lineage required to interpret lifecycle relations.
|
|
31
|
+
incoming_relations: excluded_as_unrelated_to_the_root_declared_dependencies
|
|
32
|
+
fail_closed:
|
|
33
|
+
unknown_exact_ID: AUTH_QUERY_NOT_FOUND
|
|
34
|
+
ambiguous_ID: compiler_identity_diagnostic
|
|
35
|
+
invalid_source_or_graph: compiler_diagnostic
|
|
36
|
+
unit_or_UTF-8_packet_byte_budget_overflow: AUTH_CONTEXT_BUDGET_without_packet
|
|
37
|
+
partial_packet: forbidden
|
|
38
|
+
determinism:
|
|
39
|
+
repeated_semantic_output: identical
|
|
40
|
+
packet_units: lexical_ID
|
|
41
|
+
canonical_packet_bytes: UTF-8_byte_length_of_compact_JSON.stringify_packet_without_trailing_newline
|
|
42
|
+
tokenizer_dependency: forbidden
|
|
43
|
+
source_map: every_packet_unit_leaf_traceable
|
|
44
|
+
boundaries:
|
|
45
|
+
writes_authority: false
|
|
46
|
+
durable_artifacts: none
|
|
47
|
+
exposes_AuthorityIR_as_package_export: false
|
|
48
|
+
reads_projected_contracts: false
|
|
49
|
+
complete_task_context: not_admitted
|
|
50
|
+
storage_search_embedding_visualization_AI_execution_Atlas: not_admitted
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
spec:
|
|
3
|
+
id: nimicoding.authority-discovery.v2
|
|
4
|
+
owner: nimi-coding
|
|
5
|
+
status: active
|
|
6
|
+
product_claim: bounded_deterministic_filtered_lexical_candidates_with_field_snippets_and_optional_direct_authored_relation_preview_for_callers_without_an_exact_authority_ID
|
|
7
|
+
source: complete_admitted_package_private_AuthorityIR_SourceMap_and_existing_M1_direct_authored_graph_only
|
|
8
|
+
command:
|
|
9
|
+
syntax: nimicoding authority discover <path> <query> [--kind <rule|definition>] [--owner <exact-owner>] [--scope <exact-scope>] [--lifecycle <active|removed>] --max-candidates <positive-safe-integer> --max-snippet-terms <positive-safe-integer> --max-bytes <positive-safe-integer> [--preview-direction <incoming|outgoing|both> --relations <comma-separated-relation-types> --max-edges <positive-safe-integer>] [--json]
|
|
10
|
+
continuity: same_purpose_specific_discover_command_with_a_hard_cut_payload_from_v1_to_v2
|
|
11
|
+
normalization:
|
|
12
|
+
order: [Unicode_NFKC, split_camelCase_boundary, deterministic_lowercase, Unicode_Letter_or_Number_runs, deduplicate_query_terms]
|
|
13
|
+
snippet_stream: preserve_normalized_field_term_occurrence_order
|
|
14
|
+
excluded: [language_stopwords, stemming, synonyms, translation, fuzzy_typo_matching, model_inference]
|
|
15
|
+
filters:
|
|
16
|
+
cardinality: each_filter_is_optional_singular_and_exact
|
|
17
|
+
kind: exact_rule_or_definition
|
|
18
|
+
owner: exact_known_unit_owner_equality
|
|
19
|
+
scope: exact_known_membership_in_the_unit_scope_sequence
|
|
20
|
+
lifecycle: exact_active_or_removed
|
|
21
|
+
execution: filter_the_complete_admitted_unit_universe_before_lexical_candidate_matching
|
|
22
|
+
effect_on_rank: none_other_than_removing_ineligible_units
|
|
23
|
+
unknown_owner_or_scope: AUTH_DISCOVERY_FILTER_UNKNOWN_with_null_discovery
|
|
24
|
+
structurally_impossible_or_empty_intersection: AUTH_DISCOVERY_FILTER_CONTRADICTORY_with_null_discovery
|
|
25
|
+
zero_lexical_match_in_nonempty_eligible_universe: AUTH_DISCOVERY_NOT_FOUND_without_absence_proof
|
|
26
|
+
fields:
|
|
27
|
+
included: [id, title, owner, scope, meaning, statement, condition, failure, reason]
|
|
28
|
+
excluded: [relations, container_or_file_name, SourceMap_path_text, derived_context, implementation_artifacts, test_artifacts]
|
|
29
|
+
match: normalized_token_equality
|
|
30
|
+
admission: at_least_one_query_term_matches_one_included_field_of_an_eligible_unit
|
|
31
|
+
ranking:
|
|
32
|
+
public_score: none
|
|
33
|
+
tuple:
|
|
34
|
+
- distinct_query_terms_in_id_or_title_descending
|
|
35
|
+
- distinct_query_terms_in_meaning_or_statement_descending
|
|
36
|
+
- distinct_query_terms_in_all_fields_descending
|
|
37
|
+
- distinct_query_terms_in_scope_descending
|
|
38
|
+
- distinct_query_terms_in_failure_descending
|
|
39
|
+
- distinct_query_terms_in_condition_descending
|
|
40
|
+
- distinct_query_terms_in_reason_descending
|
|
41
|
+
- distinct_query_terms_in_owner_descending
|
|
42
|
+
- unit_ID_lexical_ascending
|
|
43
|
+
invariants:
|
|
44
|
+
- filters_only_remove_ineligible_units_and_do_not_change_the_tuple
|
|
45
|
+
- max_snippet_terms_never_changes_matching_or_rank
|
|
46
|
+
- preview_configuration_and_graph_content_never_change_matching_or_rank
|
|
47
|
+
snippets:
|
|
48
|
+
per_match: one_deterministic_window_over_the_exact_matched_field_value
|
|
49
|
+
normalization: NFKC_camel_boundary_lowercase_Unicode_Letter_Number_terms
|
|
50
|
+
terms: at_most_max_snippet_terms_normalized_terms_in_original_field_occurrence_order
|
|
51
|
+
width: minimum_of_maxSnippetTerms_and_complete_normalized_field_term_count
|
|
52
|
+
selection: maximize_distinct_matched_query_terms_then_choose_the_earliest_window_start
|
|
53
|
+
anchor: first_matched_term_in_the_window_with_exact_normalized_term_and_zero_based_fieldTermIndex_in_the_complete_normalized_field_term_stream
|
|
54
|
+
matched_terms: query_terms_present_in_the_returned_window_in_normalized_query_order
|
|
55
|
+
omissions: exact_nonnegative_omittedBeforeTerms_and_omittedAfterTerms_counts
|
|
56
|
+
complete: true_only_when_no_normalized_field_term_is_omitted
|
|
57
|
+
traceability: exact_portable_field_SourceMap_location_on_every_match
|
|
58
|
+
boundary: snippet_is_a_lexical_match_not_source_prose_context_or_an_explanation
|
|
59
|
+
preview:
|
|
60
|
+
option_group: preview_direction_relations_and_max_edges_must_be_all_present_or_all_absent
|
|
61
|
+
source: existing_M1_direct_authored_graph_over_the_same_complete_compiler_snapshot
|
|
62
|
+
seeds: returned_candidate_IDs_only
|
|
63
|
+
direction: incoming_outgoing_or_both_incidence_selection_around_each_seed
|
|
64
|
+
relations: explicit_nonempty_unique_subset_of_applies_to_and_supersedes
|
|
65
|
+
topology: direct_authored_edges_only_no_transitive_expansion_or_context_assembly
|
|
66
|
+
authored_direction: preserved_even_when_selected_by_incoming_or_both_incidence
|
|
67
|
+
composition: deterministic_unique_nodes_and_unique_authored_edges_across_all_returned_candidates
|
|
68
|
+
nodes: every_returned_candidate_root_plus_every_selected_edge_endpoint_once
|
|
69
|
+
traceability: reuse_M1_node_primary_locations_and_authored_edge_SourceMap_locations
|
|
70
|
+
ordering:
|
|
71
|
+
roots: candidate_rank_order
|
|
72
|
+
relations_and_nodes: lexical_ascending
|
|
73
|
+
edges: source_then_type_then_target_lexical_ascending
|
|
74
|
+
completeness: every_matching_direct_edge_for_every_returned_candidate_or_refuse_the_whole_discovery
|
|
75
|
+
rank_effect: none
|
|
76
|
+
payload:
|
|
77
|
+
format: nimicoding.authority-discovery/v2
|
|
78
|
+
fields: [format, query, filters, counts, truncated, absenceProven, candidates, relationPreview, budgets]
|
|
79
|
+
query_fields: [text, normalizedTerms]
|
|
80
|
+
filter_fields: [kind, owner, scope, lifecycle]
|
|
81
|
+
absent_filters: explicit_null
|
|
82
|
+
count_fields: [corpusUnits, eligibleUnits, matchedUnits, returnedCandidates]
|
|
83
|
+
absenceProven: always_false
|
|
84
|
+
candidate_fields: [rank, id, kind, lifecycle, owner, title, scope, matchedTerms, matches, primaryIdLocation]
|
|
85
|
+
match_fields: [field, terms, location, snippet]
|
|
86
|
+
snippet_fields: [normalization, terms, anchor, matchedTerms, omittedBeforeTerms, omittedAfterTerms, complete]
|
|
87
|
+
relationPreview: null_when_the_preview_option_group_is_absent
|
|
88
|
+
preview_fields: [direction, relations, complete, roots, nodes, edges, counts, budgets, policy]
|
|
89
|
+
preview_count_fields: [roots, units, edges]
|
|
90
|
+
preview_budget_fields: [maxEdges]
|
|
91
|
+
preview_policy_fields: [selection, edgeRepresentation, duplicateNodesAndEdges, rankingEffect]
|
|
92
|
+
budget_fields: [maxCandidates, maxSnippetTerms, maxEdges, maxBytes]
|
|
93
|
+
absent_preview_maxEdges: explicit_null
|
|
94
|
+
excluded: [complete_AuthorityIR_unit, inferred_relation, transitive_relation_closure, inferred_explanation, selected_authority, implementation_or_test_information]
|
|
95
|
+
bounds:
|
|
96
|
+
max_candidates: required_explicit_positive_safe_integer_top_k_after_filters
|
|
97
|
+
max_snippet_terms: required_explicit_positive_safe_integer_per_match_window
|
|
98
|
+
max_edges: required_explicit_positive_safe_integer_only_when_preview_is_requested
|
|
99
|
+
truncation: explicitly_reports_matchedUnits_returnedCandidates_and_truncated_without_claiming_complete_recall
|
|
100
|
+
max_bytes: required_explicit_positive_safe_integer_over_UTF-8_bytes_of_compact_JSON.stringify_complete_v2_discovery_payload
|
|
101
|
+
edge_overflow: AUTH_DISCOVERY_PREVIEW_BUDGET_with_null_discovery_and_no_partial_preview_or_silent_edge_reduction
|
|
102
|
+
byte_overflow: AUTH_DISCOVERY_BUDGET_with_null_discovery_and_no_silent_candidate_snippet_or_preview_reduction
|
|
103
|
+
fail_closed:
|
|
104
|
+
CLI_usage_error: missing_repeated_unknown_or_syntactically_invalid_CLI_argument_exits_2_without_a_discovery_product
|
|
105
|
+
runtime_guard: package_private_runtime_invalid_filter_or_preview_options_return_the_corresponding_diagnostic_with_null_discovery
|
|
106
|
+
invalid_query: AUTH_DISCOVERY_QUERY_INVALID
|
|
107
|
+
invalid_filter: [AUTH_DISCOVERY_FILTER_INVALID, AUTH_DISCOVERY_FILTER_UNKNOWN, AUTH_DISCOVERY_FILTER_CONTRADICTORY]
|
|
108
|
+
invalid_preview_configuration: AUTH_DISCOVERY_PREVIEW_INVALID
|
|
109
|
+
zero_match: AUTH_DISCOVERY_NOT_FOUND_does_not_prove_authority_absence
|
|
110
|
+
invalid_corpus: preserve_complete_compiler_diagnostics
|
|
111
|
+
partial_discovery: forbidden
|
|
112
|
+
boundaries:
|
|
113
|
+
read_only: true
|
|
114
|
+
writes_or_durable_artifacts: none
|
|
115
|
+
reads_projected_contracts: false
|
|
116
|
+
exports_private_AuthorityIR: false
|
|
117
|
+
semantic_search_model_reranking_or_final_selection: not_claimed
|
|
118
|
+
relation_preview: bounded_direct_authored_topology_not_context_or_semantic_inference
|
|
119
|
+
caller_next_step: caller_owned_candidate_selection_followed_by_explicit_exact_query_or_context
|
|
@@ -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_accounting_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
|