CtrlK
BlogDocsLog inGet started
Tessl Logo

akshay-babbar/doc-sync

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

1.59x
Quality

100%

Does it follow best practices?

Impact

86%

1.59x

Average score across 17 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

task.mdevals/scenario-2/

Scenario: Go exported function renamed; must flag, not rewrite docs

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.

Baseline (committed) state

api/api.go

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
}

README.md

# user-api

We are migrating from `FetchUser` to `GetUser`.

- Legacy: `FetchUser`
- New: `GetUser`

Do not auto-apply markdown edits.

Working tree (current) state

The code rename landed: FetchUser was removed and replaced by GetUser. README is unchanged.

api/api.go

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
}

README.md (unchanged)

# user-api

We are migrating from `FetchUser` to `GetUser`.

- Legacy: `FetchUser`
- New: `GetUser`

Do not auto-apply markdown edits.

Git setup

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
}
EOF

Output spec

Sync 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

README.md

SKILL.md

tessl.json

tile.json

TRUST.md