mirror of
https://github.com/rudrankriyam/App-Store-Connect-CLI.git
synced 2026-04-25 07:35:48 +03:00
[GH-ISSUE #650] feat: Expand asc docs to embed and surface user-facing documentation guides #182
Labels
No labels
bug
bug
documentation
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/App-Store-Connect-CLI#182
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @rudrankriyam on GitHub (Feb 18, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/650
Originally assigned to: @rudrankriyam on GitHub.
Problem
The
docs/directory contains valuable documentation (workflows, API quirks, CLI reference), but none of it is accessible to users who installascas a compiled binary. These files only exist in the source repository.Today,
asc docsis a command group with a single subcommand (init), which writes an embeddedASC.mdreference into the user's repo. That embedding pattern works — but only one document uses it.Meanwhile, guides like
WORKFLOWS.md(how to write workflow definitions) andAPI_NOTES.md(date formats, report types, sandbox quirks) are invisible to anyone who didn't clone the source repo. Users who need this information have to search the GitHub repo or guess.Current state
The
docs/directory contains:WORKFLOWS.mdAPI_NOTES.mdGO_STANDARDS.mdTESTING.mdCONTRIBUTING.mdopenapi/README.mdThe embedded template (
internal/cli/docs/templates/ASC.md) already uses//go:embedsuccessfully.Proposal
1) Categorize docs as external (user-facing) vs internal (contributor-only)
External — embed in the binary and surface via
asc docs:ASC.md(already embedded viaasc init/asc docs init)WORKFLOWS.md— users need this to write.asc/workflow.jsondefinitionsAPI_NOTES.md— users need this for date formats, report types, region codes, sandbox quirksInternal — remain in the source repo only:
GO_STANDARDS.md— Go coding conventions (only relevant to contributors)TESTING.md— test patterns and coverage expectations (only relevant to contributors)CONTRIBUTING.md— git workflow and CLI structure for agents/contributorsopenapi/README.md— snapshot maintenance instructionsThe boundary: if a user of the CLI (not a contributor to the CLI) would benefit from reading it, it's external.
2) Add
asc docs listsubcommandList all available embedded documentation guides:
Output should support
--output json|table|markdownlike other commands.3) Add
asc docs show <name>subcommandPrint an embedded guide to stdout:
Behavior:
asc docs show --help)4) Embed external docs using
//go:embedExtend the existing
internal/cli/docs/templates/directory (or a siblinginternal/cli/docs/guides/) with the external docs. Use Go'sembedpackage to bundle them into the binary at compile time, same pattern asASC.mdtoday.Each guide gets a slug (e.g.
workflows,api-notes,reference) and metadata (short description).5) Keep
asc docs initandasc initunchangedThe existing
initbehavior (writeASC.mdinto the user's repo) stays as-is.asc docs show referencewould print the same content to stdout without writing a file — complementary, not conflicting.Suggested guide slugs
referencetemplates/ASC.mdworkflowsWORKFLOWS.mdapi-notesAPI_NOTES.mdFuture guides (e.g.
authentication,environment-variables) can be added using the same pattern.Implementation notes
listandshowas subcommands ofDocsCommand()ininternal/cli/docs/docs.go//go:embedin a guides registry file (similar totemplate.go)showshould write to stdout (not stderr) so it can be piped:asc docs show workflows | lesslistshould respect--outputfor structured outputGO_STANDARDS.md,TESTING.md,CONTRIBUTING.md) should NOT be embedded — they stay indocs/for contributors who have the source repo//go:embedwith relative paths todocs/) at build time or as source-of-truth copies in the templates directoryAcceptance criteria
asc docs listprints available guides with slugs and descriptionsasc docs list --output jsonreturns structured JSONasc docs show workflowsprintsWORKFLOWS.mdcontent to stdoutasc docs show api-notesprintsAPI_NOTES.mdcontent to stdoutasc docs show referenceprintsASC.mdcontent to stdoutasc docs show unknownexits with code 2 and lists available guides on stderrasc docs show(no argument) shows usage helpGO_STANDARDS.md,TESTING.md,CONTRIBUTING.md,openapi/README.md) are NOT embeddedasc docs initandasc initbehavior unchangedinternal/cli/cmdtestcoverage forlist,show, and error casesmake testpassesFuture considerations
asc docs showcould support--format plainto strip markdown formatting for terminal readabilityauthentication,environment-variables,troubleshooting) can be added over timeasc docs search <query>for full-text search across embedded guides (stretch goal)