MoonBit-native README example verifier and open-source provenance proof toolkit
moon add EJJ-ai-nb/harborchecktest {
let markdown =
#|# Usage
#|
#|```moonbit
#|fn main {
#| println("verified")
#|}
#|```
#|
let report = @harborcheck.doc_proof(
markdown,
[
@harborcheck.SourceEvidence(
name="HarborCheck source",
kind=@harborcheck.OwnedCode,
license="MIT",
note="Original MoonBit implementation by the project applicant",
),
],
)
inspect(report.verdict, content="ready")
}moon run examples/basicmoon run cmd/mainmoon check
moon build
moon test
moon run examples/basic
moon run cmd/main
moon publish --dry-runmoon check --deny-warn
moon build
moon test --deny-warn
moon fmt --check
moon run examples/basic
moon run cmd/main
moon publish --dry-runmoon login
moon publish --dry-run
moon publishhttps://mooncakes.io/docs/EJJ-ai-nb/harborcheck
https://mooncakes.io/api/v0/manifest/EJJ-ai-nb/harborcheckfn AcceptanceProfile::AcceptanceProfile(effective_moonbit_loc? : Int, target_moonbit_loc? : Int, ci_status? : String, mooncakes_build_status? : String, latest_commit_author? : String, latest_commit_email? : String, contest_commit_count? : Int, published_version? : String) -> AcceptanceProfilepub(all) struct AcceptanceReview {
audit : AuditReport
identity : IdentityReport
doc_proof : DocProofReport
profile : AcceptanceProfile
signals : Array[AcceptanceSignal]
score : Int
verdict : String
} derive(Eq, Debug)pub(all) struct AuditReport {
project_name : String
score : Int
max_score : Int
verdict : String
package_name : String
repository : String
findings : Array[Finding]
metrics : AuditMetrics
} derive(Eq, Debug)pub(all) struct DocProofReport {
snippet_count : Int
runnable_snippet_count : Int
source_count : Int
unclear_source_count : Int
license_issue_count : Int
verdict : String
snippets : Array[DocSnippet]
sources : Array[SourceEvidence]
} derive(Eq, Debug)fn IdentityEvidence::IdentityEvidence(key? : String, value? : String, source? : String, note? : String) -> IdentityEvidencepub(all) struct IdentityReport {
canonical : SubmissionIdentity
evidence : Array[IdentityEvidence]
findings : Array[IdentityFinding]
score : Int
verdict : String
} derive(Eq, Debug)fn MaintenancePolicy::MaintenancePolicy(min_issue_records? : Int, min_test_records? : Int, require_changelog? : Bool, require_release? : Bool, require_design_notes? : Bool, require_license_note? : Bool, require_ci_record? : Bool, require_evidence_for_done? : Bool) -> MaintenancePolicypub(all) struct MaintenanceRecord {
id : String
kind : MaintenanceRecordKind
title : String
state : MaintenanceState
evidence : String
link : String
owner : String
date : String
note : String
} derive(Eq, Debug)fn MaintenanceRecord::MaintenanceRecord(id? : String, kind? : MaintenanceRecordKind, title? : String, state? : MaintenanceState, evidence? : String, link? : String, owner? : String, date? : String, note? : String) -> MaintenanceRecordpub(all) struct MaintenanceReport {
score : Int
verdict : String
records : Array[MaintenanceRecord]
findings : Array[MaintenanceFinding]
record_count : Int
completed_count : Int
open_count : Int
evidence_count : Int
issue_count : Int
test_count : Int
release_count : Int
changelog_count : Int
design_count : Int
ci_count : Int
license_count : Int
} derive(Eq, Debug)fn MaintenanceReport::records_for_kind(self : MaintenanceReport, kind : MaintenanceRecordKind) -> Array[MaintenanceRecord]pub(all) struct ProjectSnapshot {
name : String
moon_mod : String
readme : String
ci_workflow : String
license_text : String
examples : Array[String]
tests : Array[String]
commands : Array[String]
changelog : String
design_notes : String
issue_notes : String
commit_count : Int
repository_public : Bool
mooncakes_published : Bool
mooncakes_owner : String
mooncakes_package : String
} derive(Eq, Debug)fn ProjectSnapshot::ProjectSnapshot(name? : String, moon_mod? : String, readme? : String, ci_workflow? : String, license_text? : String, examples? : Array[String], tests? : Array[String], commands? : Array[String], changelog? : String, design_notes? : String, issue_notes? : String, commit_count? : Int, repository_public? : Bool, mooncakes_published? : Bool, mooncakes_owner? : String, mooncakes_package? : String) -> ProjectSnapshotpub(all) struct SourceEvidence {
name : String
kind : SourceKind
source_url : String
license : String
note : String
} derive(Eq, Debug)fn SourceEvidence::SourceEvidence(name? : String, kind? : SourceKind, source_url? : String, license? : String, note? : String) -> SourceEvidencefn SubmissionIdentity::SubmissionIdentity(applicant_name? : String, phone? : String, email? : String, github_owner? : String, repository_name? : String, mooncakes_owner? : String, package_name? : String) -> SubmissionIdentityfn acceptance_identity_markdown(canonical : SubmissionIdentity, snapshot : ProjectSnapshot, submission_text : String, git_user_name? : String, git_user_email? : String, git_remote? : String) -> Stringfn acceptance_identity_report(canonical : SubmissionIdentity, snapshot : ProjectSnapshot, submission_text : String, git_user_name? : String, git_user_email? : String, git_remote? : String) -> IdentityReportfn acceptance_markdown(snapshot : ProjectSnapshot, canonical : SubmissionIdentity, submission_text : String, markdown : String, sources : Array[SourceEvidence], profile? : AcceptanceProfile, git_user_name? : String, git_user_email? : String, git_remote? : String) -> Stringfn final_acceptance_json(snapshot : ProjectSnapshot, canonical : SubmissionIdentity, submission_text : String, markdown : String, sources : Array[SourceEvidence], profile? : AcceptanceProfile, git_user_name? : String, git_user_email? : String, git_remote? : String) -> Stringfn final_acceptance_markdown(snapshot : ProjectSnapshot, canonical : SubmissionIdentity, submission_text : String, markdown : String, sources : Array[SourceEvidence], profile? : AcceptanceProfile, git_user_name? : String, git_user_email? : String, git_remote? : String) -> Stringfn final_acceptance_review(snapshot : ProjectSnapshot, canonical : SubmissionIdentity, submission_text : String, markdown : String, sources : Array[SourceEvidence], profile? : AcceptanceProfile, git_user_name? : String, git_user_email? : String, git_remote? : String) -> AcceptanceReviewfn identity_consistency(canonical : SubmissionIdentity, evidence : Array[IdentityEvidence]) -> IdentityReportfn maintenance_evidence_json(records : Array[MaintenanceRecord], policy? : MaintenancePolicy) -> Stringfn maintenance_evidence_markdown(records : Array[MaintenanceRecord], policy? : MaintenancePolicy) -> Stringfn maintenance_review(records : Array[MaintenanceRecord], policy? : MaintenancePolicy) -> MaintenanceReportfn snapshot_from_bundle(bundle : String, project_name? : String, commit_count? : Int, repository_public? : Bool, mooncakes_published? : Bool, mooncakes_owner? : String, mooncakes_package? : String) -> ProjectSnapshotfn snapshot_from_files(files : Array[NamedFile], project_name? : String, commit_count? : Int, repository_public? : Bool, mooncakes_published? : Bool, mooncakes_owner? : String, mooncakes_package? : String) -> ProjectSnapshotInstall
Download zipMoonBit-native README example verifier and open-source provenance proof toolkit