Skip to main content

h-note

Persist a fact, observation, caveat, or small non-binding rationale in Haft project memory when the operator explicitly asks or current Work supplies a concrete operator-named or agent-inferred receiving use that needs a lightweight addressable fact. Use for "remember this", "запиши", or "note for later". Do not auto-persist ordinary reasoning. A note is not a choice, ProblemCard, evidence verdict, approval, or WorkPlan.

ソース情報

リポジトリ
m0n0x41d/haft
ソースの最終更新活動
2026年8月2日 06:45
検出された SKILL.md の言語
英語
スター
1,398
フォーク
101

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
h-note
description
Persist a fact, observation, caveat, or small non-binding rationale in Haft project memory when the operator explicitly asks or current Work supplies a concrete operator-named or agent-inferred receiving use that needs a lightweight addressable fact. Use for "remember this", "запиши", or "note for later". Do not auto-persist ordinary reasoning. A note is not a choice, ProblemCard, evidence verdict, approval, or WorkPlan.
when_to_use
The operator explicitly asks to save a non-binding project fact, or identifies a receiving use that needs it to remain addressable.
argument-hint
[fact or observation to save]
allowed-tools
Bash mcp__haft__haft_entity mcp__haft__haft_onboard mcp__haft__haft_note mcp__haft__haft_query
# h-note — Save a lightweight project-memory item Confirm that the payload contains at least one atomic observation or a non-binding rationale. Preserve source and uncertainty when known. If the text binds a choice, route the direct operator request through `h-decide`; if it frames an unresolved problem, use `h-frame` only when problem shaping is current. ## Conditional project-memory orientation The explicit save request authorizes persistence of this note, but it does not make an EntityOfConcern identity safe to guess. When the note is context-heavy or multi-session and that identity is not already current, resolve it with `haft_query(action="memory", memory_request={"mode":"resolve","contract_version":"haft.memory.v1", "basis":{"kind":"project_current"},"query":"...","max_candidates":5})`, select the exact candidate by current use rather than rank, and hydrate the smallest relevant neighborhood through the closed `memory_request` neighborhood branch advertised by the tool schema with `projection_profile_ref="agent_orientation.v2"`. Inspect `result_kind` first. If the note needs a stable concern and resolve returns `known_absent`, the explicit save request is sufficient persistence provenance for the task-level entity route: ```text mcp__haft__haft_entity( action="establish", entity_id="<stable proposed id>", label="<readable label>", bounded_context_ref="<exact bounded context>", aliases=["<known alias, in canonical order>"], persistence_reason="explicit_operator_request", request_provenance_ref="<this save request>", idempotency_key="<stable key for this exact request>" ) ``` The tool owns alias-conflict checking, validation, admission, and exact post-commit resolution. Use only the returned canonical `entity_ref`. `identity_conflict`, `alias_conflict`, or `idempotency_conflict` must remain visible; do not guess. Route `onboarding_required` through `mcp__haft__haft_onboard(action="status")`; repair a partial or legacy default memory installation with `haft init` rather than presenting a schema choice. On `restart_required`, reconnect and retry the unchanged request and key. If the note does not need a stable concern, or setup is deferred, save the note without invented concern fields. Missing setup and explicit abstention are non-blocking. This read does not replace code-graph preflight before a later code edit. The dedicated `haft_note` surface performs the note persistence, but model-supplied fields are not proof of operator authorization. Preserve the request or named receiving-use reference in `task_context` for correlation. Persist through the dedicated note surface: ```text mcp__haft__haft_note( title="<short title>", observations=["<atomic fact>"], rationale="<why it matters, when current>", anchors=[{"type":"relates_to","ref":"<artifact ref>"}], task_context="<operator request or named receiving-use reference>", valid_until="<RFC3339 expiry when this fact is time-bounded>", entity_ref={ "ref_kind_id":"U.EntityRef", "reference_id":"<exact current EntityOfConcern>" }, bounded_context_ref="<exact current bounded context>" ) ``` Supply the concern fields only when their exact identity is known. A committed typed projection returns an exact `record_reference` with `ref_kind_id="Haft.ProjectRecordRef"`; preserve that value for later typed relations instead of deriving `record:<note-id>`. If the concern basis is absent, the note may remain a useful legacy carrier while typed projection is `underdetermined`. Do not emulate notes with ProblemCards. Do not convert a conversational aside into durable memory unless the operator asked or named a receiving reliance. After saving, return the note ID paired with its title, the exact `record_reference` when present, and state that it is non-binding.
GitHubで見る