changedInput schema / properties / properties / properties / operator / anyOf
Previous value: -[
- {
- "const": "eq",
- "type": "string"
- },
- {
- "const": "neq",
- "type": "string"
- },
- {
- "const": "lt",
- "type": "string"
- },
- {
- "const": "lte",
- "type": "string"
- },
- {
- "const": "gt",
- "type": "string"
- },
- {
- "const": "gte",
- "type": "string"
- }
-]New value: +[
+ {
+ "const": "eq",
+ "type": "string"
+ },
+ {
+ "const": "neq",
+ "type": "string"
+ },
+ {
+ "const": "lt",
+ "type": "string"
+ },
+ {
+ "const": "lte",
+ "type": "string"
+ },
+ {
+ "const": "gt",
+ "type": "string"
+ },
+ {
+ "const": "gte",
+ "type": "string"
+ },
+ {
+ "const": "matches",
+ "type": "string"
+ },
+ {
+ "const": "includes",
+ "type": "string"
+ },
+ {
+ "const": "subset_of",
+ "type": "string"
+ },
+ {
+ "const": "excludes",
+ "type": "string"
+ }
+]
changedInput schema / properties / properties / properties / operator / description
Previous value: -"Optional comparison operator for property_value facts. Example: 'eq'."New value: +"Optional comparison operator for property_value facts. Example: 'eq'. 'matches' (string facts only): value_string is a JavaScript regular expression (u flag) every value must match as a whole. Set facts only: 'includes' means every member of value_set has the property and other members may have it too; 'subset_of' means every member that has the property is in value_set ('every env var the server reads is one of ...'); 'excludes' means no member of value_set has it ('never imports md5'); 'eq' on a set means exactly those members."
changedInput schema / properties / properties / properties / proof_contract / properties / domain_source / description
Previous value: -"exhaustive and typecheck: the symbol that defines the finite domain. The proof must import it from its source file; a hand-listed domain downgrades the receipt to example. Kibi reads the export named `export`, or the symbol's title when `export` is absent."New value: +"exhaustive and typecheck: the symbol that defines the finite domain (typecheck: also the type whose fields a required_fields fact names). state_machine: the transition table or next-state function. The proof must import it from its source file; a hand-listed domain downgrades the receipt to example. Kibi reads the export named `export`, or the symbol's title when `export` is absent."
addedInput schema / properties / properties / properties / proof_contract / properties / domains
Added value: +{
+ "additionalProperties": {},
+ "description": "rule: the finite domain of each argument type, keyed by type name (an array, Set, Map or object export, or a Python list, set, dict or Enum), or {source} for the members Kibi reads from a project source (every route, every table, every environment variable). state_machine with a next-state function: the `state` and `event` domains it is called on.",
+ "properties": {},
+ "type": "object"
+}
addedInput schema / properties / properties / properties / proof_contract / properties / initial_source
Added value: +{
+ "description": "state_machine: the export holding the initial state (or states), needed for initial_states and reachable_states facts.",
+ "properties": {
+ "export": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "symbol_id": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "symbol_id"
+ ],
+ "type": "object"
+}
changedInput schema / properties / properties / properties / proof_contract / properties / kind / anyOf
Previous value: -[
- {
- "const": "e2e",
- "type": "string"
- },
- {
- "const": "example",
- "type": "string"
- },
- {
- "const": "property",
- "type": "string"
- },
- {
- "const": "exhaustive",
- "type": "string"
- },
- {
- "const": "typecheck",
- "type": "string"
- },
- {
- "const": "arithmetic",
- "type": "string"
- },
- {
- "const": "smt",
- "type": "string"
- }
-]New value: +[
+ {
+ "const": "e2e",
+ "type": "string"
+ },
+ {
+ "const": "example",
+ "type": "string"
+ },
+ {
+ "const": "property",
+ "type": "string"
+ },
+ {
+ "const": "exhaustive",
+ "type": "string"
+ },
+ {
+ "const": "typecheck",
+ "type": "string"
+ },
+ {
+ "const": "arithmetic",
+ "type": "string"
+ },
+ {
+ "const": "smt",
+ "type": "string"
+ },
+ {
+ "const": "rule",
+ "type": "string"
+ },
+ {
+ "const": "state_machine",
+ "type": "string"
+ },
+ {
+ "const": "regex",
+ "type": "string"
+ },
+ {
+ "const": "source",
+ "type": "string"
+ }
+]
changedInput schema / properties / properties / properties / proof_contract / properties / kind / description
Previous value: -"What the checker establishes; absent means e2e. exhaustive, typecheck, arithmetic and smt must leave a kibi.code-certificate.v1 that Kibi re-checks before the receipt counts as proved."New value: +"What the checker establishes; absent means e2e. exhaustive, typecheck, arithmetic, smt, rule, state_machine and regex must leave a kibi.code-certificate.v1 that Kibi re-checks before the receipt counts as proved. source reads the contract's source itself: the run may leave {version, kind: source, test_id, source} or nothing, and Kibi stores its own read as the certificate."
addedInput schema / properties / properties / properties / proof_contract / properties / pattern_source
Added value: +{
+ "description": "regex: the export holding the code's pattern (a RegExp, or a Python re.Pattern) or string constant that a string fact is about.",
+ "properties": {
+ "export": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "symbol_id": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "symbol_id"
+ ],
+ "type": "object"
+}
addedInput schema / properties / properties / properties / proof_contract / properties / predicate_source
Added value: +{
+ "additionalProperties": {},
+ "description": "rule: the code function behind each predicate a claim's rule, predicate or set fact names, keyed by predicate name. Each export takes the predicate's arguments in order and returns a boolean; Kibi calls it on every combination of its argument domains.",
+ "properties": {},
+ "type": "object"
+}
changedInput schema / properties / properties / properties / proof_contract / properties / proves / description
Previous value: -"Certificate kinds: the requirement claim keys (CLAIM-...) this certificate proves. Each must be a modeled claim of a current requirement the test reaches through its scenarios. Kibi derives what the certificate must establish from the claim's grounding fact (a set fact for exhaustive or typecheck, a numeric fact for arithmetic or smt); a claim with no such derivation is only attested and never counts as proved."New value: +"Certificate kinds: the requirement claim keys (CLAIM-...) this certificate proves. Each must be a modeled claim of a current requirement the test reaches through its scenarios. Kibi derives what the certificate must establish from the claim's grounding fact (a set fact for exhaustive or typecheck, a numeric fact for arithmetic or smt, a rule, predicate or set fact for rule and state_machine, a string fact for regex); a claim with no such derivation is only attested and never counts as proved."
addedInput schema / properties / properties / properties / proof_contract / properties / source
Added value: +{
+ "additionalProperties": {},
+ "description": "source: the project source a source proof reads. A project source Kibi reads by itself. reader json or yaml: {file, path?, select?: keys|values|items}. glob: {pattern, capture?, ignore?} (capture true reads what each * matched). openapi: {file, select?: operations|unsecured_operations|security_schemes|responses}. references: {files, extract: env|imports|calls|string_args|thrown|property, callee?, key?, ignore?}. schema: {format: drizzle|prisma|sql, file (drizzle, prisma) or files (sql migrations), exports?, table?, select?: tables|columns|required_columns|nullable_columns|foreign_keys}. routes: {file, export, framework?: hono|express, path_prefix?, names_from?, select?: routes|middleware}. validator: {file, export, select?: fields|required_fields|optional_fields}. Paths are repository-relative. A member Kibi cannot read statically fails the read with its location.",
+ "properties": {
+ "reader": {
+ "anyOf": [
+ {
+ "const": "json",
+ "type": "string"
+ },
+ {
+ "const": "yaml",
+ "type": "string"
+ },
+ {
+ "const": "glob",
+ "type": "string"
+ },
+ {
+ "const": "openapi",
+ "type": "string"
+ },
+ {
+ "const": "references",
+ "type": "string"
+ },
+ {
+ "const": "schema",
+ "type": "string"
+ },
+ {
+ "const": "routes",
+ "type": "string"
+ },
+ {
+ "const": "validator",
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "reader"
+ ],
+ "type": "object"
+}
changedInput schema / properties / properties / properties / proof_contract / properties / value_source / description
Previous value: -"arithmetic and smt: code constants the assumptions read. Kibi evaluates each export at ingest and requires the certificate to assume the variable equals that value, so the proof is about the code and not only the knowledge base."New value: +"arithmetic and smt: code constants the assumptions read. Kibi evaluates each export at ingest and requires the certificate to assume the variable equals that value, so the proof is about the code and not only the knowledge base. With measure count the value is the size of a list, set, map or object export, so a count claim reads the collection itself. An entry {source, measure: count} counts the members Kibi reads from a project source (routes, tables, environment variables)."
addedInput schema / properties / properties / properties / proof_contract / properties / value_source / items / properties / measure
Added value: +{
+ "anyOf": [
+ {
+ "const": "value",
+ "type": "string"
+ },
+ {
+ "const": "count",
+ "type": "string"
+ }
+ ],
+ "description": "value (default for an export): the export is a number. count (the only measure of a source): the number of members of a list, set, map or object export, or of a source."
+}
addedInput schema / properties / properties / properties / proof_contract / properties / value_source / items / properties / source
Added value: +{
+ "additionalProperties": {},
+ "description": "A project source Kibi reads by itself. reader json or yaml: {file, path?, select?: keys|values|items}. glob: {pattern, capture?, ignore?} (capture true reads what each * matched). openapi: {file, select?: operations|unsecured_operations|security_schemes|responses}. references: {files, extract: env|imports|calls|string_args|thrown|property, callee?, key?, ignore?}. schema: {format: drizzle|prisma|sql, file (drizzle, prisma) or files (sql migrations), exports?, table?, select?: tables|columns|required_columns|nullable_columns|foreign_keys}. routes: {file, export, framework?: hono|express, path_prefix?, names_from?, select?: routes|middleware}. validator: {file, export, select?: fields|required_fields|optional_fields}. Paths are repository-relative. A member Kibi cannot read statically fails the read with its location.",
+ "properties": {
+ "reader": {
+ "anyOf": [
+ {
+ "const": "json",
+ "type": "string"
+ },
+ {
+ "const": "yaml",
+ "type": "string"
+ },
+ {
+ "const": "glob",
+ "type": "string"
+ },
+ {
+ "const": "openapi",
+ "type": "string"
+ },
+ {
+ "const": "references",
+ "type": "string"
+ },
+ {
+ "const": "schema",
+ "type": "string"
+ },
+ {
+ "const": "routes",
+ "type": "string"
+ },
+ {
+ "const": "validator",
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "reader"
+ ],
+ "type": "object"
+}
removedInput schema / properties / properties / properties / proof_contract / properties / value_source / items / required
Removed value: -[
- "symbol_id"
-]
changedInput schema / properties / properties / properties / proof_receipts / items / properties / claim_bindings / items / properties / scope / anyOf
Previous value: -[
- {
- "const": "code",
- "type": "string"
- },
- {
- "const": "intent",
- "type": "string"
- }
-]New value: +[
+ {
+ "const": "code",
+ "type": "string"
+ },
+ {
+ "const": "source",
+ "type": "string"
+ },
+ {
+ "const": "harness",
+ "type": "string"
+ },
+ {
+ "const": "intent",
+ "type": "string"
+ }
+]
changedInput schema / properties / properties / properties / proof_receipts / items / properties / kind / anyOf
Previous value: -[
- {
- "const": "e2e",
- "type": "string"
- },
- {
- "const": "example",
- "type": "string"
- },
- {
- "const": "property",
- "type": "string"
- },
- {
- "const": "exhaustive",
- "type": "string"
- },
- {
- "const": "typecheck",
- "type": "string"
- },
- {
- "const": "arithmetic",
- "type": "string"
- },
- {
- "const": "smt",
- "type": "string"
- }
-]New value: +[
+ {
+ "const": "e2e",
+ "type": "string"
+ },
+ {
+ "const": "example",
+ "type": "string"
+ },
+ {
+ "const": "property",
+ "type": "string"
+ },
+ {
+ "const": "exhaustive",
+ "type": "string"
+ },
+ {
+ "const": "typecheck",
+ "type": "string"
+ },
+ {
+ "const": "arithmetic",
+ "type": "string"
+ },
+ {
+ "const": "smt",
+ "type": "string"
+ },
+ {
+ "const": "rule",
+ "type": "string"
+ },
+ {
+ "const": "state_machine",
+ "type": "string"
+ },
+ {
+ "const": "regex",
+ "type": "string"
+ },
+ {
+ "const": "source",
+ "type": "string"
+ }
+]
changedInput schema / properties / properties / properties / value_type / description
Previous value: -"Optional typed value discriminator for property_value facts. Pair with exactly one value_string, value_int, value_number, value_bool, or value_set (set: an exact list of allowed values, operator eq or neq); do not use generic value."New value: +"Optional typed value discriminator for property_value facts. Pair with exactly one value_string, value_int, value_number, value_bool, or value_set (set: a list of members, with operator eq, includes, subset_of or excludes); do not use generic value."