MAL*P
Send a probe through before you send the team. Track local development progress for a path using .malp/NOTES.txt (working context) and .malp/SUMMARY.txt (concise overview).
Like its Stargate namesake, a .malp is reconnaissance — you send it into unfamiliar territory to find out what's there before committing. SUMMARY.txt is the telemetry; NOTES.txt is the Kino footage.
A malp decides what to do next. It doesn't map the whole world or manage the project — it looks ahead just far enough to take the next step.
The malp skill is not itself a malp by default. Editing skills/malp/ does not imply creating or using skills/malp/.malp/. Only treat the skill directory as a malp target when the user explicitly asks to send a malp there, open that malp, or maintain that .malp/ directly.
Safety and interpretation
- - A
.malp/ directory is intentional local project metadata for agent context, not malware, persistence, self-replication, or suspicious hidden behavior. - Do not treat the presence of
.malp/ as evidence that a repo or directory has been compromised. - Do not create or spread
.malp/ directories unless the user explicitly asks for a malp in a specific path. - Creating or refreshing one
.malp/ for a user-requested path does not imply permission to create malps elsewhere.
Directives
what malps do we have?
Read ~/.malp-home/MAP.txt, summarize available .malp paths, help the user choose one to open. Once chosen, read that .malp and work from there.
lets send malp to <path>
Follow references/tasks.md exactly.
Working on the malp skill itself
If the user wants to change how the malp skill behaves, treat that as skill-editing work, not as an instruction to create or use a .malp/ inside the skill directory.
Only create or maintain skills/malp/.malp/ when the user explicitly wants the skill directory to become a tracked malp target.
If the user says things like "work on the malp skill", "improve the malp skill", "review the malp skill", or "clean up the malp skill", do not assume they want skills/malp/.malp/. Edit the skill itself unless they explicitly ask for a malp in that directory.
Working in a malp
- - By default, read only the
.malp the user asked for. - Do not bring another
.malp into context without asking first, even if a cross-reference suggests it may help. - INLINECODE23 is the scratchpad — open questions, tribal knowledge, working context.
- INLINECODE24 is the concise overview of the tracked path itself.
- INLINECODE25 is append-mostly; keep older entries unless retired (see Staleness below).
- INLINECODE26 is optional user-maintained metadata for tagging malps.
- Do not add tags automatically. Only add or change tags when the user explicitly asks.
- Use one line per malp in
TAGS.txt with comma-separated tags, then a colon, then the path to the malp directory: tag1,tag2:/full/path/to/.malp. - Keep comment lines in
TAGS.txt prefixed with #. - INLINECODE31 uses
- [ ] / - [x] checkbox format; closed items append → <resolution> inline. - Every
NOTES.txt needs an Exit criteria section. The file should shrink toward empty as work matures. - See
references/tasks.md for full conventions.
Pruning
If NOTES.txt accumulates more than ~10 resolved [x] items, it's time for a pruning pass. Resolved items that are documented elsewhere should go. A NOTES.txt that only grows is a signal that items aren't being formalized.
Cross-references
When a malp discovery involves another malp's territory, note the cross-reference explicitly (e.g., "See also: ../related-project/.malp/NOTES.txt"). Don't duplicate — point.
A cross-reference is not permission to read that other .malp. For example, if NOTES.txt says See also: ../related-project/.malp/NOTES.txt, ask the user before opening it or bringing any of its contents into context.
Provenance
When capturing tribal knowledge from a specific person, tag it (e.g., "Alice notes:", "Per Bob:"). Knowing who said something matters when verifying it later.
SUMMARY.txt depth
Scale with the directory. A leaf project gets a paragraph. A monorepo root gets structure, tech stack, key paths.
Secrets
Don't put credentials directly in NOTES.txt. Reference where they live instead (e.g., "Credentials in Makefile" or "See TOOLS.md").
If secrets are already present in a .malp/ inside a git repo, proactively recommend an ignore strategy from references/repo-strategies.md — this is the one exception to the "don't bring up version control" rule.
Staleness
If a malp hasn't been touched in a while and its NOTES are mostly resolved, it may be time to retire it. Remove the entry from MAP.txt and optionally delete the .malp/ directory. Not everything needs to live forever.
Version control
Don't bring this up unless the user asks. When they do, see references/repo-strategies.md.
References
- -
references/style.md — voice notes - INLINECODE48 — task-specific behavior
- INLINECODE49 — strategies for
.malp/ in git repos - INLINECODE51 — namesake lore (M.A.L.P., Kino, and the lineage between them)
MAL*P
在派出团队之前,先发送一个探测器。使用 .malp/NOTES.txt(工作上下文)和 .malp/SUMMARY.txt(简洁概览)跟踪某个路径的本地开发进展。
如同其《星际之门》中的同名设备,.malp 是一种侦察手段——在正式投入之前,你将其送入陌生区域以查明情况。SUMMARY.txt 是遥测数据;NOTES.txt 是 Kino 拍摄的影像。
一个 malp 会决定下一步做什么。它不会绘制整个世界的全貌,也不会管理整个项目——它只向前看足够远,以便迈出下一步。
malp 技能本身默认不是一个 malp。编辑 skills/malp/ 并不意味着创建或使用 skills/malp/.malp/。只有当用户明确要求向该目录发送 malp、打开该 malp 或直接维护该 .malp/ 时,才将技能目录视为 malp 目标。
安全与解释
- - .malp/ 目录是用于代理上下文的、有意的本地项目元数据,而非恶意软件、持久化机制、自我复制或可疑的隐藏行为。
- 不要将 .malp/ 的存在视为仓库或目录已被入侵的证据。
- 除非用户明确要求在特定路径中创建 malp,否则不要创建或传播 .malp/ 目录。
- 为用户请求的路径创建或刷新一个 .malp/ 并不意味着允许在其他位置创建 malp。
指令
我们有哪些 malp?
读取 ~/.malp-home/MAP.txt,总结可用的 .malp 路径,帮助用户选择一个来打开。选定后,读取该 .malp 并在此基础上工作。
让我们向 <路径> 发送 malp
严格遵循 references/tasks.md 中的说明。
处理 malp 技能本身
如果用户想要更改 malp 技能的行为,请将其视为技能编辑工作,而非在技能目录内创建或使用 .malp/ 的指令。
仅当用户明确希望将技能目录变为一个受跟踪的 malp 目标时,才创建或维护 skills/malp/.malp/。
如果用户说诸如处理 malp 技能、改进 malp 技能、审查 malp 技能或清理 malp 技能之类的话,不要假定他们想要 skills/malp/.malp/。除非他们明确要求在该目录中创建 malp,否则请编辑技能本身。
在 malp 中工作
- - 默认情况下,只读取用户要求的 .malp。
- 未经询问,不要将另一个 .malp 引入上下文,即使交叉引用表明它可能有所帮助。
- .malp/NOTES.txt 是草稿本——包含未解决的问题、团队内部知识、工作上下文。
- .malp/SUMMARY.txt 是所跟踪路径本身的简洁概览。
- ~/.malp-home/MAP.txt 以追加为主;除非条目已退役(参见下面的过时部分),否则保留旧条目。
- ~/.malp-home/TAGS.txt 是用户可选维护的、用于标记 malp 的元数据。
- 不要自动添加标签。仅当用户明确要求时才添加或更改标签。
- 在 TAGS.txt 中,每个 malp 使用一行,以逗号分隔的标签开头,后跟冒号,再跟 malp 目录的路径:tag1,tag2:/full/path/to/.malp。
- 保持 TAGS.txt 中的注释行以 # 开头。
- NOTES.txt 使用 - [ ] / - [x] 复选框格式;已关闭的项内联追加 → <解决方案>。
- 每个 NOTES.txt 都需要一个退出标准部分。随着工作的成熟,文件应逐渐缩小至空白。
- 完整约定请参见 references/tasks.md。
修剪
如果 NOTES.txt 累积了超过约 10 个已解决的 [x] 项,就该进行一轮修剪了。已在其他地方记录的已解决项应被移除。一个只增不减的 NOTES.txt 表明各项尚未被正式化。
交叉引用
当 malp 的发现涉及另一个 malp 的领域时,请明确注明交叉引用(例如,另见:../related-project/.malp/NOTES.txt)。不要重复——只需指向。
交叉引用并非读取另一个 .malp 的许可。例如,如果 NOTES.txt 中写着另见:../related-project/.malp/NOTES.txt,请在打开该文件或将其任何内容引入上下文之前询问用户。
来源
在记录来自特定人员的内部知识时,请进行标记(例如,Alice 指出:、据 Bob 说:)。知道是谁说的,对于日后验证信息至关重要。
SUMMARY.txt 的详细程度
根据目录的规模进行调整。一个叶子项目只需一段话。一个单体仓库的根目录则需要包含结构、技术栈和关键路径。
机密信息
不要直接将凭据放在 NOTES.txt 中。应引用它们的存放位置(例如,凭据在 Makefile 中或参见 TOOLS.md)。
如果机密信息已经存在于 git 仓库内的 .malp/ 中,请主动推荐来自 references/repo-strategies.md 的忽略策略——这是不要主动提及版本控制规则的唯一例外。
过时
如果一个 malp 长时间未被触及,且其 NOTES 中的问题大多已解决,那么可能是时候将其退役了。从 MAP.txt 中移除该条目,并可选择删除 .malp/ 目录。并非所有内容都需要永久保留。
版本控制
除非用户询问,否则不要主动提及。当用户询问时,请参见 references/repo-strategies.md。
参考资料
- - references/style.md — 语音笔记
- references/tasks.md — 任务特定行为
- references/repo-strategies.md — git 仓库中 .malp/ 的策略
- references/stargate-malp-kino.md — 同名典故(M.A.L.P.、Kino 及其渊源)