Hello Swift Community,
I'm Anas, a senior CS student, and I'm applying for GSoC 2026 for the Improved Documentation for Command Line Tools project with @ronnqvist as the potential mentor.
I'd love to share my draft proposal and hear your feedback before the submission deadline. This is my first time applying for GSoC and posting here, so please bear with me if I make any mistakes! ![]()
Overview:
Swift Argument Parser's generate-docc-reference plugin currently produces a single Markdown file for an entire CLI tool, no per-command pages, no flag grouping matching --help, and no structured representation DocC can reason about. Manually authored references like Swift Package Manager's command documentation show what good CLI docs look like, but maintaining them by hand is costly and they fall out of sync as commands evolve.
Goal:
The goal of this project is to improve the generate-docc-reference plugin in two incremental stages: first, producing richer Markdown output with one file per command and flags organized by @OptionGroup; second, generating a supplementary symbol graph file that enables the 'Command' page type, symbol links, and extension file support in DocC.
Deliverables:
-
Richer Markdown output from the
generate-docc-referenceplugin -
Supplementary symbol graph file (
.symbols.json) -
Tests and documentation
Proposed Modifications:
- Richer Markdown Output:
-
Per-command file splitting, one
.mdperParsableCommand -
Flag sections organized by
@OptionGroup, matching--helplayout -
Default and possible values shown per flag
-
Snapshot tests validated against DocC's own
convertcommand
- Symbol Graph Generation:
-
One symbol per command (
swift.command) with stable identifier, display name, and abstract -
memberOfrelationships linking subcommands to their parent -
Unit tests, no SymbolKit dependency
- Plugin Integration:
-
Both outputs integrated into the existing plugin workflow
-
End-to-end tests using SPM or DocC commands as real-world input
Full draft proposal: Google Docs.
Iād appreciate any feedback on the direction, scope, or potential improvements.
Thank you!