taptrail

Pure MoonBit TAP13 parser, CI validation gate, and Markdown/JSON report renderer.

tap
tap13
test-report
ci
parser
markdown
moon add MX-ai-nb/taptrail@0.3.0
Download zip
Author
Version
0.3.0
License
MIT
Last updated
3 hours ago
Downloads
10
README

#TapTrail

TapTrail 的主要说明文档在 README.md。本文件保留为 MoonBit 文档工具的兼容入口,核心用法、API、测试命令和 Mooncakes 发布说明均以 README.md 为准。

#
TapAnnotation

pub(all) struct TapAnnotation {
suite : String
path : String
line : Int
end_line : Int
column : Int
level : TapAnnotationLevel
code : String
title : String
message : String
remediation : String
} derive(Eq,
Debug
)

One issue annotation that can be rendered for CI systems.

#
TapAnnotationLevel

pub(all) enum TapAnnotationLevel {
AnnotationNotice
AnnotationWarning
AnnotationFailure
} derive(Eq,
Debug
)

Output level for CI annotations.

#
TapArtifact

pub(all) struct TapArtifact {
name : String
media_type : String
content : String
} derive(Eq,
Debug
)

A simple named text artifact such as Markdown, JSON, XML, or properties.

#
TapDiagnostic

pub(all) struct TapDiagnostic {
line : Int
text : String
} derive(Eq,
Debug
)

A diagnostic comment line.

#
TapDirective

pub(all) enum TapDirective {
NoDirective
Skip(String)
Todo(String)
} derive(Eq,
Debug
)

A TAP directive attached to a test point.

#
TapDocument

pub(all) struct TapDocument {
has_version : Bool
version : String
has_plan : Bool
plan_start : Int
plan_end : Int
points : Array[TapPoint]
diagnostics : Array[TapDiagnostic]
yaml_blocks : Array[TapYamlBlock]
bailed_out : Bool
bailout_reason : String
parse_issues : Array[TapIssue]
} derive(Eq,
Debug
)

Parsed TAP stream with non-fatal parser issues.

#
TapIssue

pub(all) struct TapIssue {
line : Int
code : String
message : String
} derive(Eq,
Debug
)

A parser or validation issue.

#
TapIssueMeta

pub(all) struct TapIssueMeta {
code : String
severity : TapSeverity
category : String
title : String
remediation : String
} derive(Eq,
Debug
)

Stable metadata for one known TapTrail issue code.

#
TapNamedInput

pub(all) struct TapNamedInput {
name : String
input : String
} derive(Eq,
Debug
)

A named TAP input stream for suite-level reporting.

#
TapNamedReport

pub(all) struct TapNamedReport {
name : String
report : TapReport
} derive(Eq,
Debug
)

A parsed and validated named TAP stream.

#
TapPoint

pub(all) struct TapPoint {
line : Int
number : Int
ok : Bool
name : String
directive : TapDirective
raw : String
} derive(Eq,
Debug
)

One parsed TAP test point.

#
TapPolicy

pub(all) struct TapPolicy {
name : String
require_version : Bool
require_plan : Bool
require_plan_match : Bool
require_monotonic_numbers : Bool
require_numbered_points : Bool
allow_bailout : Bool
allow_unknown_lines : Bool
allow_todo : Bool
allow_skip : Bool
max_failures : Int
max_parse_issues : Int
min_total : Int
min_passed : Int
} derive(Eq,
Debug
)

A configurable CI policy for TAP reports.

#
TapPolicyResult

pub(all) struct TapPolicyResult {
policy_name : String
ok : Bool
score : Int
errors : Int
warnings : Int
infos : Int
messages : Array[String]
} derive(Eq,
Debug
)

Result of applying a policy to a report.

#
TapProjectEvidence

pub(all) struct TapProjectEvidence {
package_name : String
version : String
repository : String
license : String
readme_present : Bool
readme_has_usage : Bool
readme_has_features : Bool
ci_configured : Bool
examples : Int
test_cases : Int
build_ok : Bool
mooncakes_published : Bool
mooncakes_version : String
mooncakes_build_ok : Bool
commit_count : Int
total_moonbit_lines : Int
effective_moonbit_lines : Int
has_changelog : Bool
has_design_doc : Bool
has_provenance_doc : Bool
has_acceptance_checklist : Bool
clean_tree : Bool
} derive(Eq,
Debug
)

Evidence supplied by a project, script, or human review.

#
TapReadinessCheck

pub(all) struct TapReadinessCheck {
id : String
category : String
title : String
required : Bool
passed : Bool
score : Int
max_score : Int
risk : TapReadinessRisk
evidence : String
remediation : String
} derive(Eq,
Debug
)

One scored acceptance or release readiness check.

#
TapReadinessLevel

pub(all) enum TapReadinessLevel {
ReadinessReady
ReadinessNeedsWork
ReadinessBlocked
} derive(Eq,
Debug
)

High-level acceptance state for release and contest submission reviews.

#
TapReadinessReport

pub(all) struct TapReadinessReport {
project : String
suite : TapSuiteReport
policy : TapPolicyResult
evidence : TapProjectEvidence
checks : Array[TapReadinessCheck]
score : Int
level : TapReadinessLevel
ok : Bool
} derive(Eq,
Debug
)

Complete readiness report composed from TAP data and repository evidence.

#
TapReadinessRisk

pub(all) enum TapReadinessRisk {
RiskPass
RiskNotice
RiskWarning
RiskBlock
} derive(Eq,
Debug
)

Risk level attached to one readiness check.

#
TapReport

pub(all) struct TapReport {
document : TapDocument
summary : TapSummary
issues : Array[TapIssue]
ok : Bool
} derive(Eq,
Debug
)

A validation report ready for CI gates and release notes.

#
TapRunRecord

pub(all) struct TapRunRecord {
id : String
label : String
timestamp : String
report : TapReport
} derive(Eq,
Debug
)

A timestamped TAP report record for trend analysis.

#
TapSeverity

pub(all) enum TapSeverity {
SeverityInfo
SeverityWarning
SeverityError
} derive(Eq,
Debug
)

Severity used by CI policy checks and human-facing audit output.

#
TapSeverityCounts

pub(all) struct TapSeverityCounts {
infos : Int
warnings : Int
errors : Int
} derive(Eq,
Debug
)

Aggregated issue counts by severity.

#
TapSuiteReport

pub(all) struct TapSuiteReport {
name : String
reports : Array[TapNamedReport]
summary : TapSuiteSummary
ok : Bool
} derive(Eq,
Debug
)

A CI-friendly suite report built from many TAP streams.

#
TapSuiteSummary

pub(all) struct TapSuiteSummary {
suites : Int
passed_suites : Int
failed_suites : Int
planned : Int
total : Int
passed : Int
failed : Int
skipped : Int
todo : Int
diagnostics : Int
yaml_blocks : Int
issues : Int
} derive(Eq,
Debug
)

Aggregate counters for a collection of named reports.

#
TapSummary

pub(all) struct TapSummary {
planned : Int
total : Int
passed : Int
failed : Int
skipped : Int
todo : Int
diagnostics : Int
yaml_blocks : Int
} derive(Eq,
Debug
)

Aggregate counts for one TAP stream.

#
TapSummaryDelta

pub(all) struct TapSummaryDelta {
planned : Int
total : Int
passed : Int
failed : Int
skipped : Int
todo : Int
diagnostics : Int
yaml_blocks : Int
issues : Int
health : Int
} derive(Eq,
Debug
)

Difference between two TAP summaries.

#
TapTrendKind

pub(all) enum TapTrendKind {
TrendImproved
TrendRegressed
TrendStable
TrendMixed
} derive(Eq,
Debug
)

Trend classification for release notes.

#
TapTrendReport

pub(all) struct TapTrendReport {
before : TapRunRecord
after : TapRunRecord
delta : TapSummaryDelta
kind : TapTrendKind
notes : Array[String]
} derive(Eq,
Debug
)

Comparison between two records.

#
TapYamlBlock

pub(all) struct TapYamlBlock {
start_line : Int
end_line : Int
lines : Array[String]
} derive(Eq,
Debug
)

A YAMLish TAP diagnostic block.

#
annotation_for_issue

fn annotation_for_issue(suite : String, path : String, item : TapIssue) -> TapAnnotation

Convert a report issue to an annotation.

#
annotation_level_for_severity

fn annotation_level_for_severity(severity : TapSeverity) -> TapAnnotationLevel

Map issue severity to annotation level.

#
annotation_level_label

fn annotation_level_label(level : TapAnnotationLevel) -> String

Human-readable annotation level label.

#
annotations_to_github_commands

fn annotations_to_github_commands(annotations : Array[TapAnnotation]) -> String

Render annotations as GitHub workflow command lines.

#
annotations_to_json

fn annotations_to_json(annotations : Array[TapAnnotation]) -> String

Render annotations as a compact JSON array.

#
annotations_to_markdown

fn annotations_to_markdown(annotations : Array[TapAnnotation]) -> String

Render annotations as Markdown.

#
audit_policy

fn audit_policy() -> TapPolicy

Policy for exploratory runs where diagnostics are useful but failures should still be visible.

#
best_run

fn best_run(records : Array[TapRunRecord]) -> TapRunRecord?

Return the best health-score record.

#
blocking_readiness_checks

fn blocking_readiness_checks(report : TapReadinessReport) -> Array[TapReadinessCheck]

Return failed required checks.

#
build_suite_report

fn build_suite_report(name : String, reports : Array[TapNamedReport]) -> TapSuiteReport

Build a suite report from named reports.

#
classify_trend

fn classify_trend(delta : TapSummaryDelta) -> TapTrendKind

Classify a summary delta into a compact trend kind.

#
code_scale_is_meaningful

fn code_scale_is_meaningful(evidence : TapProjectEvidence) -> Bool

Return true when source scale is meaningful even if still below reference.

#
code_scale_matches_reference

fn code_scale_matches_reference(evidence : TapProjectEvidence) -> Bool

Return true when the code scale is close to the contest reference range.

#
compare_runs

fn compare_runs(before : TapRunRecord, after : TapRunRecord) -> TapTrendReport

Compare two timestamped records.

#
compare_summaries

fn compare_summaries(before : TapReport, after : TapReport) -> TapSummaryDelta

Compare two report summaries.

#
count_blocking_failures

fn count_blocking_failures(report : TapReport) -> Int

Count non-TODO failing test points.

#
count_issue_severities

fn count_issue_severities(report : TapReport) -> TapSeverityCounts

Count report issues by severity.

#
count_parse_issues

fn count_parse_issues(report : TapReport) -> Int

Count parse issues before semantic validation issues are added.

#
count_skip_points

fn count_skip_points(report : TapReport) -> Int

Count test points with SKIP directives.

#
count_todo_points

fn count_todo_points(report : TapReport) -> Int

Count test points with TODO directives.

#
count_unnumbered_points

fn count_unnumbered_points(report : TapReport) -> Int

Count test points without explicit test numbers.

#
default_policy

fn default_policy() -> TapPolicy

Policy suited for normal development branches.

#
empty_project_evidence

fn empty_project_evidence(package_name : String) -> TapProjectEvidence

Construct an empty evidence object for tests or incremental tools.

#
evaluate_policy

fn evaluate_policy(report : TapReport, policy : TapPolicy) -> TapPolicyResult

Evaluate one report with a named policy.

#
evaluate_suite_policy

fn evaluate_suite_policy(suite : TapSuiteReport, policy : TapPolicy) -> TapPolicyResult

Apply a policy to every suite member and aggregate the result.

#
failed_readiness_checks

fn failed_readiness_checks(report : TapReadinessReport) -> Array[TapReadinessCheck]

Return failed checks, including optional recommendations.

#
failed_runs

fn failed_runs(records : Array[TapRunRecord]) -> Array[TapRunRecord]

Return records whose report failed validation.

#
failing_reports

fn failing_reports(suite : TapSuiteReport) -> Array[TapNamedReport]

Return all failing reports.

#
first_failing_report

fn first_failing_report(suite : TapSuiteReport) -> TapNamedReport?

Return the first failing report, if any.

#
health_score

fn health_score(report : TapReport) -> Int

Calculate a simple 0-100 health score for dashboards.

#
highest_readiness_risk

fn highest_readiness_risk(report : TapReadinessReport) -> TapReadinessRisk

Return the highest risk present in a report.

#
history_issue_codes

fn history_issue_codes(records : Array[TapRunRecord]) -> Array[String]

Return unique issue codes seen across a history.

#
history_issue_count

fn history_issue_count(records : Array[TapRunRecord], code : String) -> Int

Count issue occurrences across run history.

#
history_issue_frequency_markdown

fn history_issue_frequency_markdown(records : Array[TapRunRecord]) -> String

Render issue frequency as Markdown.

#
history_to_json

fn history_to_json(records : Array[TapRunRecord]) -> String

Render a run history as compact JSON.

#
history_to_markdown

fn history_to_markdown(records : Array[TapRunRecord]) -> String

Render a list of runs as Markdown history.
fn history_trends_to_markdown(records : Array[TapRunRecord]) -> String

Render pairwise trends for adjacent run records.

#
issue_catalog_markdown

fn issue_catalog_markdown() -> String

Render all known issue metadata as Markdown.

#
issue_is_blocking

fn issue_is_blocking(code : String) -> Bool

Return true if the issue should block a normal CI gate.
fn issue_is_format_related(code : String) -> Bool

Return true if the issue came from parser or TAP shape concerns.
fn issue_is_runtime_related(code : String) -> Bool

Return true if the issue is about runtime execution outcome.

#
issue_meta

fn issue_meta(code : String) -> TapIssueMeta

Return stable metadata for a known issue code.

#
known_issue_codes

fn known_issue_codes() -> Array[String]

Return issue codes currently produced by TapTrail validators.

#
latest_run_improved

fn latest_run_improved(records : Array[TapRunRecord]) -> Bool

Return true if the last run improved from the previous run.

#
latest_run_regressed

fn latest_run_regressed(records : Array[TapRunRecord]) -> Bool

Return true if the last run regressed from the previous run.

#
license_is_recognized

fn license_is_recognized(license : String) -> Bool

Return true when supplied evidence has a recognized open-source license.

#
named_input

fn named_input(name : String, input : String) -> TapNamedInput

Construct a named input value.

#
named_report

fn named_report(name : String, report : TapReport) -> TapNamedReport

Construct a named report from already parsed data.

#
optional_readiness_gaps

fn optional_readiness_gaps(report : TapReadinessReport) -> Array[TapReadinessCheck]

Return failed optional checks.

#
package_name_has_namespace

fn package_name_has_namespace(package_name : String) -> Bool

Return true when a package name looks publishable to mooncakes.io.

#
parse_and_report

fn parse_and_report(input : String) -> TapReport

Parse and validate a TAP stream in one call.

#
parse_suite

fn parse_suite(name : String, inputs : Array[TapNamedInput]) -> TapSuiteReport

Parse multiple TAP streams into a suite report.

#
parse_tap

fn parse_tap(input : String) -> TapDocument

Parse a TAP13-ish stream. The parser is permissive and records unknown lines as issues instead of aborting.

#
passed_readiness_checks

fn passed_readiness_checks(report : TapReadinessReport) -> Array[TapReadinessCheck]

Return checks that passed.

#
passed_runs

fn passed_runs(records : Array[TapRunRecord]) -> Array[TapRunRecord]

Return records whose report passed validation.

#
passing_reports

fn passing_reports(suite : TapSuiteReport) -> Array[TapNamedReport]

Return all passing reports.

#
policy_audit_markdown

fn policy_audit_markdown(report : TapReport, policy : TapPolicy) -> String

Convert a report and policy into a compact audit record.

#
policy_passes

fn policy_passes(report : TapReport, policy : TapPolicy) -> Bool

Return true when a policy accepts a report.

#
policy_result_to_markdown

fn policy_result_to_markdown(result : TapPolicyResult) -> String

Render one policy result as Markdown.

#
policy_status_line

fn policy_status_line(result : TapPolicyResult) -> String

Render a short one-line status for terminals.

#
policy_to_markdown

fn policy_to_markdown(policy : TapPolicy) -> String

Render policy settings so release notes can capture the gate definition.

#
readiness_actions_markdown

fn readiness_actions_markdown(checks : Array[TapReadinessCheck]) -> String

Render remediation actions as Markdown bullets.

#
readiness_badge_markdown

fn readiness_badge_markdown(report : TapReadinessReport, target_url : String) -> String

Render a Markdown badge for README or release dashboards.

#
readiness_checks_to_markdown

fn readiness_checks_to_markdown(checks : Array[TapReadinessCheck]) -> String

Render checks as a Markdown table.

#
readiness_earned_score

fn readiness_earned_score(checks : Array[TapReadinessCheck]) -> Int

Sum earned points across checks.

#
readiness_evidence_markdown

fn readiness_evidence_markdown(evidence : TapProjectEvidence) -> String

Render only the evidence section as Markdown.

#
readiness_from_report

fn readiness_from_report(project : String, report_name : String, report : TapReport, evidence : TapProjectEvidence) -> TapReadinessReport

Evaluate one TAP report by wrapping it as a single-member suite.

#
readiness_from_suite

fn readiness_from_suite(project : String, suite : TapSuiteReport, evidence : TapProjectEvidence) -> TapReadinessReport

Evaluate a full suite and repository evidence for release readiness.

#
readiness_grade

fn readiness_grade(score : Int) -> String

Return a compact grade for a readiness score.

#
readiness_level_label

fn readiness_level_label(level : TapReadinessLevel) -> String

Return a stable label for the readiness level.

#
readiness_max_score

fn readiness_max_score(checks : Array[TapReadinessCheck]) -> Int

Sum maximum points across checks.

#
readiness_passes

fn readiness_passes(report : TapReadinessReport) -> Bool

Return true when the readiness report is suitable for submission.

#
readiness_recommendations

fn readiness_recommendations(report : TapReadinessReport) -> Array[String]

Return concise human-readable recommendations.

#
readiness_release_note

fn readiness_release_note(report : TapReadinessReport) -> String

Render a short release note sentence.

#
readiness_risk_count

fn readiness_risk_count(report : TapReadinessReport, risk : TapReadinessRisk) -> Int

Count checks with a given risk level.

#
readiness_risk_label

fn readiness_risk_label(risk : TapReadinessRisk) -> String

Return a stable label for one readiness risk.

#
readiness_risk_rank

fn readiness_risk_rank(risk : TapReadinessRisk) -> Int

Numeric risk order for dashboards and automation.

#
readiness_score

fn readiness_score(checks : Array[TapReadinessCheck]) -> Int

Calculate normalized 0-100 readiness score.

#
readiness_summary_line

fn readiness_summary_line(report : TapReadinessReport) -> String

Return a one-line summary for terminals and release notes.

#
readiness_to_checklist

fn readiness_to_checklist(report : TapReadinessReport) -> String

Render a checkbox list for manual release review.

#
readiness_to_csv

fn readiness_to_csv(report : TapReadinessReport) -> String

Render one CSV row for spreadsheet-style tracking.

#
readiness_to_env_lines

fn readiness_to_env_lines(report : TapReadinessReport, prefix : String) -> String

Render readiness values as GitHub environment lines.

#
readiness_to_json

fn readiness_to_json(report : TapReadinessReport) -> String

Render a compact JSON object for dashboards.

#
readiness_to_markdown

fn readiness_to_markdown(report : TapReadinessReport) -> String

Render a Markdown report suitable for GitHub job summaries.

#
readiness_to_properties

fn readiness_to_properties(report : TapReadinessReport, prefix : String) -> String

Render readiness fields as .properties content.

#
release_policy

fn release_policy() -> TapPolicy

Stricter policy for package release gates.

#
report_annotations

fn report_annotations(suite : String, path : String, report : TapReport) -> Array[TapAnnotation]

Build annotations for a single TAP report.

#
report_artifacts

fn report_artifacts(name : String, report : TapReport) -> Array[TapArtifact]

Package common report outputs in one call.

#
report_badge_markdown

fn report_badge_markdown(report : TapReport, label : String, target_url : String) -> String

Render a Markdown badge link for GitHub README files.

#
report_has_issue

fn report_has_issue(report : TapReport, code : String) -> Bool

Return true when a report contains the issue code.

#
report_passes

fn report_passes(input : String) -> Bool

Return true when the report has no validation issues.

#
report_review_markdown

fn report_review_markdown(name : String, report : TapReport, policy : TapPolicy) -> String

Render a high-signal Markdown review for one report.

#
report_to_checkstyle_xml

fn report_to_checkstyle_xml(report : TapReport, file_name : String) -> String

Render Checkstyle-compatible XML for issue dashboards.

#
report_to_env_lines

fn report_to_env_lines(report : TapReport, prefix : String) -> String

Render one report as GitHub environment lines.

#
report_to_properties

fn report_to_properties(report : TapReport, prefix : String) -> String

Render report key-value pairs for shell-independent CI artifact files.

#
report_to_shields_json

fn report_to_shields_json(report : TapReport, label : String) -> String

Render a Shields endpoint JSON badge for a report.

#
report_to_teamcity_messages

fn report_to_teamcity_messages(report : TapReport, flow_id : String) -> String

Render one report as TeamCity service messages.

#
report_with_most_issues

fn report_with_most_issues(suite : TapSuiteReport) -> TapNamedReport?

Find the report with the most issues.

#
reports_with_issue

fn reports_with_issue(suite : TapSuiteReport, code : String) -> Array[TapNamedReport]

Return reports containing a specific issue code.
fn repository_link_present(repository : String) -> Bool

Return true when a repository URL is present and public-looking.

#
run_record

fn run_record(id : String, label : String, timestamp : String, report : TapReport) -> TapRunRecord

Construct a timestamped run record.

#
score_grade

fn score_grade(score : Int) -> String

Return a textual grade for a score.

#
severity_label

fn severity_label(severity : TapSeverity) -> String

Turn a severity enum into a short stable label.

#
severity_rank

fn severity_rank(severity : TapSeverity) -> Int

Numeric order used by external tools that need sortable severity.

#
strict_policy

fn strict_policy() -> TapPolicy

Policy for strict conformance checks.

#
suite_annotations

fn suite_annotations(suite : TapSuiteReport, path_prefix : String) -> Array[TapAnnotation]

Build annotations for every member of a suite.

#
suite_artifacts

fn suite_artifacts(suite : TapSuiteReport) -> Array[TapArtifact]

Package common suite outputs in one call.

#
suite_badge_markdown

fn suite_badge_markdown(suite : TapSuiteReport, label : String, target_url : String) -> String

Render a Markdown badge link for suite status.

#
suite_blocking_failures

fn suite_blocking_failures(suite : TapSuiteReport) -> Int

Count report-level blocking failures across the suite.

#
suite_has_issue

fn suite_has_issue(suite : TapSuiteReport, code : String) -> Bool

Return true when any suite report contains the issue code.

#
suite_health_score

fn suite_health_score(suite : TapSuiteReport) -> Int

Calculate suite-level health score.

#
suite_issue_codes

fn suite_issue_codes(suite : TapSuiteReport) -> Array[String]

Return unique issue codes in first-seen order.

#
suite_issues_to_markdown

fn suite_issues_to_markdown(suite : TapSuiteReport) -> String

Render issue details as a Markdown table.

#
suite_passes

fn suite_passes(suite : TapSuiteReport) -> Bool

Return true when every named report passes.

#
suite_status_label

fn suite_status_label(suite : TapSuiteReport) -> String

Return a stable status label for the suite.

#
suite_to_checklist

fn suite_to_checklist(suite : TapSuiteReport) -> String

Render a Markdown checklist useful for manual release reviews.

#
suite_to_checkstyle_xml

fn suite_to_checkstyle_xml(suite : TapSuiteReport) -> String

Render Checkstyle-compatible XML for suite issues.

#
suite_to_compact_json

fn suite_to_compact_json(suite : TapSuiteReport) -> String

Render a compact JSON object for suite dashboards.

#
suite_to_csv

fn suite_to_csv(suite : TapSuiteReport) -> String

Render suite rows as CSV with a header.

#
suite_to_env_lines

fn suite_to_env_lines(suite : TapSuiteReport, prefix : String) -> String

Render a compact status block for CI environment files.

#
suite_to_junit_xml

fn suite_to_junit_xml(suite : TapSuiteReport) -> String

Render one merged JUnit XML suite containing named reports.

#
suite_to_markdown

fn suite_to_markdown(suite : TapSuiteReport) -> String

Render a suite as Markdown for GitHub job summaries.

#
suite_to_properties

fn suite_to_properties(suite : TapSuiteReport, prefix : String) -> String

Render suite key-value pairs for artifact files.

#
suite_to_release_notes

fn suite_to_release_notes(suite : TapSuiteReport) -> String

Render release-note bullets from a suite.

#
suite_to_shields_json

fn suite_to_shields_json(suite : TapSuiteReport, label : String) -> String

Render a Shields endpoint JSON badge for a suite.

#
suite_to_tsv

fn suite_to_tsv(suite : TapSuiteReport) -> String

Render suite rows as tab-separated values.

#
summarize

fn summarize(doc : TapDocument) -> TapSummary

Build aggregate counters for a parsed TAP document.

#
summarize_suite

fn summarize_suite(reports : Array[TapNamedReport]) -> TapSuiteSummary

Aggregate suite-level counters.

#
to_compact_json

fn to_compact_json(report : TapReport) -> String

Render a small JSON object without requiring a JSON dependency.

#
to_junit_xml

fn to_junit_xml(report : TapReport, suite_name? : String) -> String

Render a JUnit-style XML test suite for CI systems that can ingest XML.

#
to_markdown

fn to_markdown(report : TapReport) -> String

Render a compact Markdown report for CI logs or release artifacts.

#
trend_kind_label

fn trend_kind_label(kind : TapTrendKind) -> String

Human-readable trend kind label.

#
trend_to_csv

fn trend_to_csv(trend : TapTrendReport) -> String

Render a trend report as one CSV row with header.

#
trend_to_json

fn trend_to_json(trend : TapTrendReport) -> String

Render a trend report as compact JSON.

#
trend_to_markdown

fn trend_to_markdown(trend : TapTrendReport) -> String

Render a summary delta as Markdown.

#
validate

fn validate(doc : TapDocument) -> TapReport

Validate a parsed TAP document for release or CI gating.

#
verified_project_evidence

fn verified_project_evidence(package_name : String, version : String, repository : String, license : String, examples : Int, test_cases : Int, total_moonbit_lines : Int, effective_moonbit_lines : Int, commit_count : Int) -> TapProjectEvidence

Construct evidence for a repository that already passed local verification.

#
worst_run

fn worst_run(records : Array[TapRunRecord]) -> TapRunRecord?

Return the worst health-score record.