Auto-syncs stale docstrings and README when function signatures change. Detects documentation drift after refactors, parameter additions, or return type changes. Dry-run by default — proposes before writing.
87
100%
Does it follow best practices?
Impact
86%
1.59xAverage score across 17 eval scenarios
Passed
No known issues
A team maintains a Go service. A core exported function gained a new parameter in the latest commit. The function has a Go-style doc comment. The project also has a CHANGELOG.md that documents release history and a decisions/adr-003-api-design.md architectural decision record — both mention the function.
Update the source documentation using --apply mode.
Extract the following files, then set up the git repository:
=============== FILE: inputs/setup.sh =============== #!/usr/bin/env bash set -euo pipefail git init git config user.email "dev@example.com" git config user.name "Dev" mkdir -p pkg/client decisions cat > pkg/client/client.go << 'GOEOF' package client
// Connect establishes a connection to the remote host. // // Parameters: // - host: hostname or IP address // - port: TCP port number // // Returns a Client instance or an error. func Connect(host string, port int) (*Client, error) { return nil, nil }
type Client struct{} GOEOF cat > CHANGELOG.md << 'MDEOF'
Connect function to the client package.
MDEOF
cat > decisions/adr-003-api-design.md << 'MDEOF'The Connect function uses positional parameters for host and port.
MDEOF
git add -A && git commit -m "baseline"
cat > pkg/client/client.go << 'GOEOF'
package client
// Connect establishes a connection to the remote host. // // Parameters: // - host: hostname or IP address // - port: TCP port number // // Returns a Client instance or an error. func Connect(host string, port int, timeout int) (*Client, error) { return nil, nil }
type Client struct{} GOEOF git add -A && git commit -m "add timeout param to Connect"
Sync the documentation and write the results to doc-sync-report.md.
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17