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 Go package renamed an exported function as part of an API cleanup. The old name was removed and a new name was added. The README currently mentions both names because the team is migrating gradually. You must not "fix" the README automatically; you must flag the rename for human review.
api/api.gopackage api
import "fmt"
type User struct {
ID string
Name string
}
// FetchUser retrieves a user record by ID.
func FetchUser(id string) (User, error) {
if id == "" {
return User{}, fmt.Errorf("id is required")
}
return User{ID: id, Name: "example"}, nil
}README.md# user-api
We are migrating from `FetchUser` to `GetUser`.
- Legacy: `FetchUser`
- New: `GetUser`
Do not auto-apply markdown edits.The code rename landed: FetchUser was removed and replaced by GetUser. README is unchanged.
api/api.gopackage api
import "fmt"
type User struct {
ID string
Name string
}
// GetUser retrieves a user record by ID.
func GetUser(id string) (User, error) {
if id == "" {
return User{}, fmt.Errorf("id is required")
}
return User{ID: id, Name: "example"}, nil
}README.md (unchanged)# user-api
We are migrating from `FetchUser` to `GetUser`.
- Legacy: `FetchUser`
- New: `GetUser`
Do not auto-apply markdown edits.Init repo, commit baseline, overwrite with working tree so git diff HEAD shows the rename (old removed, new added):
git init
mkdir -p api
cat > api/api.go <<'EOF'
package api
import "fmt"
type User struct {
ID string
Name string
}
// FetchUser retrieves a user record by ID.
func FetchUser(id string) (User, error) {
if id == "" {
return User{}, fmt.Errorf("id is required")
}
return User{ID: id, Name: "example"}, nil
}
EOF
cat > README.md <<'EOF'
# user-api
We are migrating from `FetchUser` to `GetUser`.
- Legacy: `FetchUser`
- New: `GetUser`
Do not auto-apply markdown edits.
EOF
git add -A && git commit -m "baseline"
cat > api/api.go <<'EOF'
package api
import "fmt"
type User struct {
ID string
Name string
}
// GetUser retrieves a user record by ID.
func GetUser(id string) (User, error) {
if id == "" {
return User{}, fmt.Errorf("id is required")
}
return User{ID: id, Name: "example"}, nil
}
EOFSync the documentation for this change and write the results to doc-sync-report.md. It must flag the rename / removal for human review and must not delete or rewrite README entries.
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