Skip to content

Specification Audit — 2026-04-14 — console package API drift (21 undocumented exported functions) #26329

@github-actions

Description

@github-actions

📚 Package Specification Audit Report

Date: 2026-04-14
Total Packages: 20
Packages with Specs: 20
Coverage: 100%


Coverage Summary

Status Package Notes
agentdrain Complete — all exported symbols documented
⚠️ console 21 undocumented exported functions
constants Complete — GetEngineOption, GetAllEngineSecretNames documented
envutil Complete
fileutil Complete — includes ExtractFileFromTar
gitutil Complete — includes ReadFileFromHEADWithRoot
logger Complete — includes slog integration
parser Complete
repoutil Complete
semverutil Complete — includes IsCompatible
sliceutil Complete
stringutil Complete — StripANSI correctly documented
styles Complete
testutil Complete — includes CaptureStderr
timeutil Complete — all 3 FormatDuration* variants documented
tty Complete
types Complete
typeutil Complete — includes ParseBool
cli Complete
workflow Complete

🚨 Missing API Documentation: console Package

pkg/console/README.md (554 lines) documents many of the package's APIs but omits 21 exported functions. These functions exist across multiple source files (render.go, terminal.go, verbose.go, layout*.go, input*.go, select*.go, list*.go, form*.go, console_wasm.go) and are part of the stable public API.

View all 21 undocumented exported functions

Terminal Utilities (terminal.go)

Function Signature
ClearScreen func ClearScreen()
ClearLine func ClearLine()
ShowWelcomeBanner func ShowWelcomeBanner(description string)

Render Utilities (render.go)

Function Signature
FormatNumber func FormatNumber(n int) string
FormatErrorWithSuggestions func FormatErrorWithSuggestions(message string, suggestions []string) string
ToRelativePath func ToRelativePath(path string) string

Message Formatting (missing from table in README)

These are defined in console_wasm.go and their non-WASM counterparts but do not appear in the Format* message table:

Function Emoji prefix
FormatCountMessage 📊
FormatLocationMessage 📁
FormatListHeader (plain)

Layout Functions (layout.go / layout_wasm.go)

Fully absent from the README:

Function Signature
LayoutTitleBox func LayoutTitleBox(title string, width int) string
LayoutInfoSection func LayoutInfoSection(label, value string) string
LayoutEmphasisBox func LayoutEmphasisBox(content string, color any) string
LayoutJoinVertical func LayoutJoinVertical(sections ...string) string

Interactive Prompt Functions (input.go, select.go, form.go, list.go)

PromptSecretInput is documented but these are missing:

Function Signature
PromptInput func PromptInput(title, description, placeholder string) (string, error)
PromptInputWithValidation func PromptInputWithValidation(title, description, placeholder string, validate func(string) error) (string, error)
PromptSelect func PromptSelect(title, description string, options []SelectOption) (string, error)
PromptMultiSelect func PromptMultiSelect(title, description string, options []SelectOption, limit int) ([]string, error)
RunForm func RunForm(fields []FormField) error
ShowInteractiveList func ShowInteractiveList(title string, items []ListItem) (string, error)

Verbose Logging (verbose.go)

Function Signature
LogVerbose func LogVerbose(verbose bool, message string)

Tree Rendering

Function Signature
RenderTree func RenderTree(root TreeNode) string

Note: The TreeNode type is documented in the README's Types section but the RenderTree function that uses it is not.


🔄 Cross-Document Inconsistency

AGENTS.md references stringutil.StripANSIEscapeCodes() in the YAML File Editing section, but the actual function is named stringutil.StripANSI(). The stringutil package README correctly documents StripANSI. Any workflow or developer relying on AGENTS.md for the function name will encounter a compile error.


📊 Quality Scores

Package Completeness Accuracy Consistency Overall
console ~58% 95% 85% ⚠️ ~79%
All others ~95%+ ~95%+ ~95%+ ✅ 95%+

Action Items

  • Add missing sections to pkg/console/README.md for the 21 undocumented functions above (re-run spec-extractor or add manually)
  • Fix AGENTS.md — replace stringutil.StripANSIEscapeCodes() with the correct stringutil.StripANSI()

📚 Next review scheduled for tomorrow. Close this issue once all items are resolved.

📚 Specification review by Package Specification Librarian · ● 2.7M ·

Metadata

Metadata

Labels

documentationImprovements or additions to documentation

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions