- did:
did:repo:69c8659959f1a6aa281bdc1b8653b381e741b3f6/blob/main/src/requirements/REQUIREMENTS-Progressive_Trust_Terminology.md- github:
core/blob/main/src/requirements/REQUIREMENTS-Progressive_Trust_Terminology.md- Updated: 2025-03-04 by Christopher Allen [email protected] Github/Twitter/Bluesky: @ChristopherA
This requirements document applies to the Open Integrity Project's Proof-of-Concept scripts, versioned 0.1.*, which are available at the following source:
Origin: github:
https://github.com/OpenIntegrityProject/scripts/
Any updates or modifications to these scripts should reference this requirements document to ensure consistency with the outlined terminology requirements.
This document defines standardized terminology requirements for the Open Integrity Project, specifically focusing on Progressive Trust language conventions. These conventions ensure conceptual clarity when discussing different phases of the Progressive Trust model in code, documentation, and user interfaces.
Progressive Trust is a foundational concept introduced by Blockchain Commons that establishes trust gradually, mirroring how human trust relationships evolve in the real world - through progressive stages rather than binary "trust/don't trust" decisions. The Open Integrity Project applies this model to software integrity and cryptographic verification.
The Progressive Trust model consists of different phases that build upon each other. Each phase has distinct terminology that should be used consistently throughout the codebase:
Initial consideration of whether a progressive trust approach is needed.
Establishes the starting point for trusted interactions by declaring initial assertions.
Checks that data assets are technically correct, well-formed, and sufficiently complete.
Ensures cryptographic validity and authenticity through verification.
Builds trust by affirming and cross-referencing against other trusted sources.
Evaluates compliance with community standards, specifications, and policies.
Later phases (Approval, Agreement, Fulfillment, Inspection, Dispute) apply primarily to more complex interactions but may be referenced in documentation.
-
verify/verification/verifying
- MUST be reserved exclusively for cryptographic operations in Phase 3 (Proofs)
- Examples: "verify signature", "cryptographically verify", "verify hash"
- MUST NOT be used for non-cryptographic checks
- When used in function names, MUST indicate that cryptographic verification is occurring
-
validate/validation/validating
- MUST NEVER be used in the Open Integrity Project
- These terms imply a different trust model and create conceptual confusion
- No exceptions to this rule
For Phase 2 (Wholeness), three related terms have specific usage patterns:
-
assess/assessment
- USE when the primary action is evaluating or judging quality
- Example: "assess repository structure", "integrity assessment"
- Appropriate for general evaluation activities
- Example function:
assess_Repository_Structure()
-
assure/assurance
- USE when confirming and providing confidence in a specific state
- Example: "assure empty commit", "assurance of format correctness"
- Appropriate when checking specific conditions with binary outcomes
- Example function:
assure_Empty_Commit()
-
ensure
- USE when guaranteeing that a condition is met (implementation detail)
- Example: "ensure robust error handling", "ensure proper formatting"
- Less preferred for user-facing terminology but acceptable in internal documentation
- Example function:
ensure_Proper_Configuration()
-
Phase 0 (Context) Terminology
- Preferred verbs: "consider", "plan", "survey"
- Preferred objects: "interaction", "context", "ecosystem", "environment"
- Function naming pattern:
consider_*,plan_* - Variable naming pattern:
*_Context,*_Plan
-
Phase 1 (Introduction) Terminology
- Preferred verbs: "declare", "assert", "commit", "establish", "introduce", "reveal"
- Preferred objects: "assertion", "initial claim", "inception commit", "origin", "public declaration"
- Function naming pattern:
declare_*,assert_*,establish_* - Variable naming pattern:
*_Declaration,*_Assertion
-
Phase 2 (Wholeness) Terminology
- Preferred verbs: "assess", "assure", "examine", "structure", "cohere", "organize"
- Preferred objects: "integrity", "consistency", "wholeness", "structure"
- Function naming pattern:
assess_*,assure_*,examine_* - Variable naming pattern:
*_Status,*_Integrity,*_Structure
-
Phase 3 (Proofs) Terminology
- Preferred verbs: "verify", "authenticate", "encode", "hash", "sign"
- Preferred objects: "secret", "hash", "proof", "signature"
- Function naming pattern:
verify_*,authenticate_* - Variable naming pattern:
*_Verified,*_Proof,*_Signature
-
Phase 4 (References) Terminology
- Preferred verbs: "affirm", "aggregate", "check", "look up", "synthesize", "endorse"
- Preferred objects: "trust", "declarations", "references", "trust model"
- Function naming pattern:
affirm_*,reference_* - Variable naming pattern:
*_Referenced,*_Trusted,*_Affirmed
-
Phase 5 (Requirements) Terminology
- Preferred verbs: "audit", "comply", "certify", "standardize", "test"
- Preferred objects: "requirements", "expectations", "policies", "standards"
- Function naming pattern:
audit_*,evaluate_*,meets_*,comply_* - Variable naming pattern:
*_Compliance,*_Conformance,*_Requirement
-
Functions MUST be named according to their primary phase of operation
- Example:
verify_Signature()for a function that cryptographically verifies a signature - Example:
assess_Repository_Structure()for a function that examines repository structure - Example:
assure_Empty_Commit()for a function that confirms a commit contains no files
- Example:
-
Functions that operate across multiple phases SHOULD use the terminology of their primary phase:
- For a function spanning Phases 2 and 3, with primary focus on Phase 2:
assess_Repository_With_Verification() - For a function spanning Phases 3 and 4, with primary focus on Phase 3:
verify_Signature_With_References()
- For a function spanning Phases 2 and 3, with primary focus on Phase 2:
-
Functions that implement a specific part of a phase SHOULD use a more specific verb:
- Example:
extract_Commit_Message()instead ofcheck_Commit_Message() - Example:
parse_Repository_Structure()instead ofassess_Repository_Structure()
- Example:
-
Phase 2 (Wholeness) functions SHOULD distinguish between:
assess_*for evaluating quality or integrity (judgment-oriented)assure_*for confirming specific conditions (state-oriented)locate_*for finding specific elements within a structure
-
Function naming MUST follow a consistent pattern:
<phase_verb>_<object>[_<modifier>]()- Where
<phase_verb>is the appropriate verb for the phase - Where
<object>is the entity being acted upon - Where optional
<modifier>provides additional context
-
Status variables MUST use phase-appropriate suffixes
- Example:
Signature_Verifiedrather thanSignature_Validated(Phase 3) - Example:
Structure_Integrityrather thanStructure_Verification(Phase 2)
- Example:
-
Boolean variables SHOULD use the appropriate phase prefix or suffix
- Example:
Has_Inception_Commit(Phase 1) vsIs_Referenced_Externally(Phase 4) - Example:
Integrity_Confirmed(Phase 2) vsSignature_Verified(Phase 3)
- Example:
-
Collection variables SHOULD use pluralized phase-appropriate naming
- Example:
Verified_Signatures,Referenced_Identities
- Example:
-
Variables that track progress through phases SHOULD use clear phase indicators
- Example:
Trust_Assessment_Statuswith values indicating phase progress - Example:
Current_Phasewith numeric values corresponding to phases
- Example:
-
User-facing messages MUST use phase-appropriate terminology
- Example: "Signature verification failed" rather than "Signature validation failed"
- Example: "Integrity assessment passed" rather than "Integrity verification passed"
-
Log messages SHOULD indicate the specific phase of operation
- Example: "[PHASE 3] Verifying signature..."
- Example: "[PHASE 2] Assessing repository structure..."
-
Exit codes and error handling SHOULD reflect phase-specific outcomes
- Phases 1-3 (local phases) may warrant non-zero exit codes
- Phases 4-5 (remote phases) may warrant warnings but not errors
# Assessment header - properly uses "assessment" terminology
z_Output info "Wholeness Assessment:"
z_Output verbose Emoji="" "(Progressive Trust Phase 2)"
# Function for general evaluation (uses "assess")
function oi_Assess_Repository_Structure {
z_Output verbose Indent=2 Emoji="π" "Assessing repository structure..."
# Evaluation code here
}
# Status variable with appropriate naming
Trust_Assessment_Status[structure]=$TRUE
# Proper output message with phase-appropriate terminology
z_Output success Indent=2 "Content Assessment: Commit is empty as required"# Function for binary confirmation (should use "assure" instead of "assess")
function oi_Assure_Empty_Commit {
z_Output verbose Indent=2 Emoji="π" "Assuring commit is empty..."
# Binary check code here
}
# Function for finding elements (should use "locate")
function oi_Locate_Inception_Commit {
z_Output verbose Indent=2 Emoji="π" "Locating inception commit..."
# Location code here
}
# Error message with proper terminology
z_Output error Indent=4 "Wholeness assessment failed: structure integrity issue"# Phase header - properly uses "proofs" terminology
z_Output info "Cryptographic Proofs:"
z_Output verbose Emoji="" "(Progressive Trust Phase 3)"
# Function using "authenticate" for cryptographic verification
function oi_Authenticate_Ssh_Signature {
z_Output verbose Indent=2 Emoji="π" "Authenticating SSH signature..."
# Verification code here
}
# Status variable with verification terminology
Trust_Assessment_Status[signature]=$TRUE
# Proper verification message
z_Output verbose Indent=8 "β Signature cryptographically verified"# Function using explicit "verify" verb
function oi_Verify_Commit_Signature {
z_Output verbose Indent=2 Emoji="π" "Verifying commit signature..."
# Verification code here
}
# Proper verification failure message
z_Output error Indent=4 "Signature verification failed: invalid key format"
# Status tracking with proper terminology
typeset -i Signature_Verified=$FALSE# Phase header with proper terminology
z_Output info "Trust References:"
z_Output verbose Emoji="" "(Progressive Trust Phase 4)"
# Function using "affirm" for identity reference
function oi_Affirm_Committer_Signature {
z_Output verbose Indent=2 Emoji="π" "Affirming identity references..."
# Reference checking code here
}
# Proper output message
z_Output success Indent=2 "Identity Check: Committer matches key fingerprint"# Function using "reference" verb
function oi_Reference_External_Identity {
z_Output verbose Indent=2 Emoji="π" "Referencing external identity sources..."
# Reference checking code here
}
# Status variable with appropriate phase terminology
typeset -i Identity_Referenced=$TRUE
# Warning message with proper terminology
z_Output warn Indent=2 "Identity reference issue: unable to affirm external references"# Function using "comply" for standards
function oi_Comply_With_GitHub_Standards {
z_Output info "Community Standards:"
z_Output verbose Emoji="" "(Progressive Trust Phase 5)"
# Standards compliance code here
}
# Status tracking with standards terminology
Trust_Assessment_Status[standards]=$TRUE# Function using "audit" verb
function oi_Audit_Community_Standards {
z_Output verbose Indent=2 Emoji="π" "Auditing community standards compliance..."
# Standards auditing code here
}
# Function using "evaluate" verb
function oi_Evaluate_License_Compliance {
z_Output verbose Indent=2 Emoji="π" "Evaluating license compliance..."
# Compliance evaluation code here
}
# Status variable with appropriate terminology
typeset -i Standards_Compliance=$TRUE
# Proper status message
z_Output success Indent=2 "Standards Audit: Repository meets community requirements"When organizing code by Progressive Trust phases, use consistent section headers:
#----------------------------------------------------------------------#
# PHASE 2: WHOLENESS ASSESSMENT
#----------------------------------------------------------------------#
z_Output info "Wholeness Assessment:"
z_Output verbose Emoji="" "(Progressive Trust Phase 2)"
# Phase 2 operations here
#----------------------------------------------------------------------#
# PHASE 3: CRYPTOGRAPHIC PROOFS
#----------------------------------------------------------------------#
z_Output info "Cryptographic Proofs:"
z_Output verbose Emoji="" "(Progressive Trust Phase 3)"
# Phase 3 operations here-
Documentation MUST maintain consistent terminology across all components
- README files, comments, help text, and UI elements must align
- Error messages and success messages must use the same terminology
-
When introducing new functionality:
- Determine the appropriate phase of operation
- Choose terminology from the corresponding phase
- Use consistent naming patterns for functions, variables, and messages
-
When modifying existing code:
- Refactor names to align with these guidelines
- Document changes in commit messages with "Terminology alignment" noted
- Update tests to reflect new terminology
-
Terminology changes SHOULD be made incrementally:
- Focus on one phase or component at a time
- Ensure all related functions, variables, and messages are updated together
- Include comprehensive testing to verify behavior hasn't changed
-
Each terminology change SHOULD be in its own commit with:
- Clear subject line: "Align Phase X terminology in [component]"
- Detailed explanation of what was changed and why
- Reference to this requirements document
Adherence to these terminology requirements ensures conceptual clarity throughout the Open Integrity Project. These distinctions are not merely semantic but reflect the fundamental Progressive Trust model and its application to software integrity. Consistent terminology helps users, developers, and external observers understand the specific claims being made and the level of trust established at each phase.