Write as you build. Not optional.
What you're writingToolScopePersonal observation or lesson learnedhizal__write_memoryAGENTArchitecture or design decisionhizal__write_knowledgePROJECTConvention this codebase followshizal__write_conventionPROJECT (auto-inject)Agent identity or personalityhizal__write_identityAGENT (auto-inject)Org-wide knowledgehizal__write_org_knowledgeORGPrinciple (requires human promotion)hizal__store_principleORGCustom chunk typehizal__write_chunkvaries
Do not use hizal__write_context — it's deprecated. Use the purpose-built tools above.
For chunk types not covered by the built-in tools, use hizal__write_chunk. Chunk types are customizable per org — always discover what's available before assuming a type doesn't exist.
text
hizal__list_chunks() # inspect chunk_type values in results
Or check the project's AGENTS.md for the org's type conventions.
text
hizal__write_chunk(
type="<chunk-type-slug>",
query_key="<unique-key>",
title="<short title>",
content="<full content>",
scope="PROJECT", # or AGENT, ORG
project_id="<id>", # required for PROJECT scope
org_id="<id>", # required for ORG scope
agent_id="<id>" # required for AGENT scope
)
write_chunk accepts the same common fields as all other write tools (query_key, title, content, gotchas, related, source_file, inject_audience, etc.). It also accepts custom_fields for type-specific metadata.
Don't batch everything into one chunk at the end. Write as you go:
write_knowledge nowwrite_convention nowwrite_memory nowwrite_chunk nowAll write tools accept:
text
hizal__write_knowledge(
project_id="<id>",
query_key="nuvei-webhook-signing",
title="DMN Webhook Signature Verification",
content="All DMN payloads are verified using SHA-256 HMAC. The checksum is computed from sorted key-value pairs + merchant secret. See package internal/checksum for implementation.",
related=["nuvei-payload-structure", "merchant-credentials"],
gotchas=["Never use /payment for credential verification"]
)
If a personal memory chunk is broadly useful for the team, promote it:
hizal__read_contextwrite_knowledge or write_convention with the contenthizal__delete_context