Files
DBAdmin/docs___/seo/seo_hook.md
T
2026-05-27 07:48:02 +00:00

3.9 KiB
Raw Blame History

Poniżej masz konkretny, READMEready opis HOOKa typu commandlogger, dopasowany do Twojego stylu operacyjnego (OpenClaw / orgmode / „plaintext productivity”). To opis projektowy + kontrakt, nie marketing.


HOOK: command-logger

Cel

command-logger to globalny hook obserwacyjny, który rejestruje każde polecenie / wywołanie SKILLa wraz z kontekstem wykonania, bez wpływu na logikę biznesową.
Jego jedyną odpowiedzialnością jest audit trail i rekonstrukcja przebiegu pracy.

To jest odpowiednik bash history + strace + journalctl, ale na poziomie AI / SKILL routera.


Miejsce w architekturze

  • typ: HOOK (sideeffect only)
  • moment: BEFORE + AFTER execution
  • zasięg: router + wszystkie subskills
  • brak modyfikacji danych wejściowych/wyjściowych
User → Router
        ↳ HOOK: command-logger (BEFORE)
        → Skill / Sub-skill
        ↳ HOOK: command-logger (AFTER)

Co jest logowane (kontrakt)

1. Metadane techniczne

  • timestamp_start
  • timestamp_end
  • duration_ms
  • session_id
  • trace_id
  • parent_trace_id
  • host / agent_id

2. Kontekst wykonania

  • actor (user / system / agent)
  • skill_name
  • skill_version
  • hook_phase (before | after)
  • stage (np. Inicjacja / Badania / Transakcja)
  • intent (jeśli wykryty przez router)

3. Dane operacyjne (bezpieczne)

  • command skrót/identyfikator, nie pełny prompt
  • input_fingerprint (hash / checksum)
  • output_fingerprint
  • status (ok | error)
  • error_type (jeśli wystąpił)

Zasada: logujemy fakty o operacji, nie jej treść semantyczną.


Format zapisu (orgmode friendly)

Jeden plik = jeden strumień pracy

command-log.org

* 2026-03-16 09:12:04 | router
:PROPERTIES:
:session: 9f3a…
:trace:   r-001
:phase:   before
:actor:   user
:stage:   Badania
:intent:  seo-research
:END:
Command: route → seo-research
Input:  sha256:8ac7…
* 2026-03-16 09:12:18 | seo-research
:PROPERTIES:
:session: 9f3a…
:trace:   r-001
:parent:  r-000
:phase:   after
:status:  ok
:duration_ms: 14231
:END:
Output: sha256:91bd…

spełnia:

  • plaintext
  • difffriendly
  • audytowalne
  • nadaje się do grep / ripgrep / orgagenda

Zasady projektowe (ważne)

Co command-logger MOŻE

  • rejestrować
  • tagować
  • agregować
  • eksportować (np. do Splunk / JSONL)

Czego NIE MOŻE

  • zmieniać inputu
  • zmieniać outputu
  • blokować wykonania
  • podejmować decyzji

Jeśli HOOK zaczyna „myśleć” → to nie jest już hook, tylko policyengine.


Przykładowa definicja (konceptualna)

hook:
  name: command-logger
  type: observer
  phases: [before, after]
  scope: global
  output:
    format: org
    file: command-log.org
  privacy:
    log_payload: false
    use_fingerprints: true

Typowe usecasey

  • rekonstrukcja dnia pracy („co robiłem i dlaczego”)
  • debug AI (gdzie poszło nie tak)
  • time audit pod książkę o produktywności
  • compliance / audit trail
  • trening systemu (analiza sekwencji, nie treści)

Antywzorce

logowanie pełnych promptów
logowanie danych wrażliwych
zależność innych SKILLi od loggera
brak identyfikatorów sesji / trace


TL;DR (jednym zdaniem)

command-logger to czarny skrzynkowy rejestr zdarzeń, który zapisuje że coś się stało, kiedy, gdzie i z jakim skutkiembez ingerencji w to, co i dlaczego.


Jeśli chcesz, w kolejnym kroku mogę:

  • dodać diagram Mermaid tylko dla HOOK‑ów
  • rozpisać drugiego hooka: decision-logger (tylko dla routera)
  • albo przygotować OpenClaw SKILL: hooks/command-logger (router + middleware)