You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FEATURE] Mark deployed files as generated in .gitattributes #3207
Teams that commit what apm install deploys, so that agents without network access or tokens still find their skills, review those files like hand-written code. A bump of one dependency changes one line in apm.yml and hundreds in apm.lock.yaml and each target directory. With several targets, the same SKILL.md appears once per target.
GitHub collapses such diffs when a path is marked linguist-generated. Keeping that list right by hand means tracking deployed_files across installs, removals and new transitive dependencies.
Desired solution
An option, in apm.yml or as a flag, under which apm install maintains a marked block in .gitattributes, as it already adds apm_modules/ to .gitignore:
# >>> managed by apm install
/apm.lock.yamllinguist-generated
/.claude/skills/service-yaml/**linguist-generated
/.agents/skills/service-yaml/**linguist-generated# <<< managed by apm install
One entry per deployed package directory, taken from the lockfile, so skills authored in the repo stay reviewable.
Entries removed when a package is removed.
Lines outside the block left alone.
Optionally, apm audit reports a block that doesn't match the lockfile.
Alternatives and additional context
A hand-written /.claude/skills/** linguist-generated also marks skills authored in the repo, and goes stale as dependencies change.
-diff hides the change from git itself, which is too strong.
Linguist's built-in list covers files with fixed names, and Mark APM lockfiles as generated github-linguist/linguist#8265 proposes adding apm.lock.yaml to it, so GitHub would collapse the lockfile in every repository. The deployed directories vary by project and target, and only APM knows them, so they can't go there. Once 8265 ships, /apm.lock.yaml can leave the block.
Problem
Teams that commit what
apm installdeploys, so that agents without network access or tokens still find their skills, review those files like hand-written code. A bump of one dependency changes one line inapm.ymland hundreds inapm.lock.yamland each target directory. With several targets, the sameSKILL.mdappears once per target.GitHub collapses such diffs when a path is marked
linguist-generated. Keeping that list right by hand means trackingdeployed_filesacross installs, removals and new transitive dependencies.Desired solution
An option, in
apm.ymlor as a flag, under whichapm installmaintains a marked block in.gitattributes, as it already addsapm_modules/to.gitignore:apm auditreports a block that doesn't match the lockfile.Alternatives and additional context
/.claude/skills/** linguist-generatedalso marks skills authored in the repo, and goes stale as dependencies change.-diffhides the change from git itself, which is too strong.linguist-generatedin.gitattributes, and feat: dogfood APM on microsoft/apm -- .apm/ primitives, compile, --check gate #842 did the same forapm compileoutput.apm.lock.yamlto it, so GitHub would collapse the lockfile in every repository. The deployed directories vary by project and target, and only APM knows them, so they can't go there. Once 8265 ships,/apm.lock.yamlcan leave the block.Happy to help test.