the signals and their derived score are provisional and subject to change.
validate manually before sharing.
b117a3f7c5dfc461f6c2cceb42602b80c107ce21b117a3f7c5df1 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkb2cd107d74781 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk4f8692c855d61 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkc0b599b9f2b21 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk8779927086131 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhke2f0bffda6401 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkdda221198ba91 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhka29d1a6e552f1 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk30d862b986191 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk26fd0801528a1 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk19dad3a623421 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk14e0493fb2991 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk83561d3c5ddb1 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkf815aa0cbd821 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk46c42c3956131 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkec76a53a00e71 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkff56f0aa34541 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkcf5c6017e1141 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkdbe57076cfd61 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhke9f2433ed2d81 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk06c4b15359e01 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk5a3d1eeb39361 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk6e9b537106031 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk7d94e53b43b61 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhke013a5121a361 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk49d7426d7e081 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkb0d929cf0ad81 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk4f3b77795b2e1 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkfa1aadd66bb51 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk646cb8df698f1 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk7c088f9653f11 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk28541f45ef711 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk1d52518bb5be1 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk3fcf3ee215311 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkba0a38dad3231 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk6374dd767f701 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk4dd44baa1a0f1 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk960efdbc3c421 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk9f9c5d9d70ad1 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhkb3b5d1ba445b1 week agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk76c3165661e12 weeks agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk6fe948cc452b2 weeks agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk2e3993c66de42 weeks agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk4e9df487dac42 weeks agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhk4c2a539c83a92 weeks agoClaude-Session: https://claude.ai/code/session_01MUoYwEEhpiUJMq9pSBqFhka46249ccceae2 weeks agoClaude-Session: https://claude.ai/code/session_016a3XQG4t8eaQdV1NxbREujfdfd4bb397012 weeks agoClaude-Session: https://claude.ai/code/session_016a3XQG4t8eaQdV1NxbREuj471f0a29c6e02 weeks agoClaude-Session: https://claude.ai/code/session_016a3XQG4t8eaQdV1NxbREujfd9c37168dd63 weeks agoClaude-Session: https://claude.ai/code/session_016BuMcPGWdbWo8tMDRNr9UMa35e65f8c8143 weeks agoClaude-Session: https://claude.ai/code/session_016BuMcPGWdbWo8tMDRNr9UMa2c7c465085f1 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiaa3ab6a13d6401 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCmcc4c0c59489d1 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiaf244a7b406651 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia4be1afe360751 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiaaa2877b08e731 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiad92165ffcbd71 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia000f775589ca1 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia72baeeae0b421 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiaf98b595c94671 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia3e3d8e73ae5b1 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia0eb9adb88df51 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiaf35cb884fa1c1 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiaecdd68225e781 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia216cd76b6a5d1 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia3167b40cd44a1 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiad54506555a991 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia12e68c63dc731 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiae4e7b7a1de891 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia774034bc32981 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiaa2043380ebd01 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiac455edc9eed31 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia00beb261bf021 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia894a123ed83b1 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiaaad60e376a7c1 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia3093c80f62231 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMiacb7cd74394bf1 month agoClaude-Session: https://claude.ai/code/session_0184uJZWBQZKUx71HdkGCMia2b54437218771 month agoCo-authored-by: Claude Fable 5.1 <noreply@anthropic.com>86d3353e89aa1 month agoCo-authored-by: Claude Fable 5.1 <noreply@anthropic.com>238e13777a901 month agoCo-authored-by: Claude Fable 5.1 <noreply@anthropic.com>23bab64001d01 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm8f1a24f2a5561 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCmf1aea94466221 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm2bd8840c6a1f1 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm75a502794d371 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm1680d4fe7e7f1 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCmcba8715d1e2b1 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCmf892b5e6a2d81 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm4dac6fe275a31 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCmf43ace9bb1f91 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm035b50ec39501 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm4b30ad9229f61 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCma2cf2b39a6541 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm6dda2f42b7c91 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCmbee4be6f29d11 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCmfba630a7ea7e1 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm5989bf45f5cc1 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCmd31b45ecf7ad1 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm1287693e4a171 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm3726421e86381 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm07ed0682f4881 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm7cc7b2ab05331 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm4941a7597f7b1 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCmfd30b69bcfc21 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCmbaa7e6e25f471 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCmb8ab657b15921 month agoClaude-Session: https://claude.ai/code/session_01L4Fo61KUCW1uJF2WWy5HCm# Agent guide for Helpdock
Instructions for AI coding agents (Claude Code, Codex, Cursor, Copilot and others) working in this repository. Humans should read [CONTRIBUTING.md](CONTRIBUTING.md).
## What this project is
Helpdock is an open-source (AGPL-3.0), self-hosted customer support platform: ticketing, help center, live chat widget and grounded AI, with one deploy serving many brands. Read the two planning documents before doing any non-trivial work:
- [docs/planning/PRD.md](docs/planning/PRD.md) is t@AGENTS.md
## Claude Code specifics
- Use `gh` for GitHub operations. Open pull requests against `main` and leave merging to the user.
- You (the orchestrating session) own the design canvas. Before delegating any deliverable with a UI, add its artboard(s) to the canvas with the Artifact tool, following DESIGN.md, and reference the artboard names in the agent's prompt.
- Before opening a PR, run the matching skill: `clean-code-guard` for production code, `test-guard` for tests, `docs-guard` for documentat---
name: security-audit
description: Security guidance and vulnerability review for codebases, APIs, services, CLI tools, libraries, and daemons. Use for security questions, focused reviews, vulnerability research, security audits, or pen tests. Run the complete workflow only for explicit codebase audit or pen-test requests, full/comprehensive/end-to-end reviews, or requested report artifacts.
---
# Security Audit
Find vulnerabilities that violate a real trust boundary, then give owners the source eviden---
name: docs-guard
description: "Review generated or changed documentation before it ships — READMEs, API references, docstrings, PHPDoc/JSDoc, changelogs, tutorials, and doc sites. Best used reactively after an agent writes or edits docs, after code changes documented behavior, or before publishing docs. Use when the user says 'review the docs', 'is this documentation accurate', 'update the docs', 'write a README', 'document this API', 'add a docstring', or 'add a changelog entry'. Core job: verify eve---
name: clean-code-guard
description: Review generated or changed production code before it ships, using Clean Code, SOLID, DRY, KISS, YAGNI, and LLM-specific failure-mode checks in any programming language. Best used reactively after an agent writes, edits, refactors, or fixes code, before presenting, committing, or merging the result. Use when the user asks "review this PR", "is this safe to merge?", "make this cleaner", "audit this code", "refactor this", "fix this bug", or after a coding agent produce---
name: test-guard
description: "Review generated or changed test code against universal testing rules before it ships. Best used reactively after an agent writes, edits, generates, or refactors tests, before presenting, committing, or merging them. Use for pytest (test_*.py, *_test.py), PHPUnit/Pest (*Test.php), Jest/Vitest (*.test.ts, *.spec.js), Go (*_test.go), files under tests/, __tests__/, or spec/, and review requests like 'write tests for X', 'add tests', 'test this', 'review these tests', or PR d.dockerignoreclaude-code.claude.dockerignoreunspecified.agents