This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
ChittyHelper is a Class III informational service within the ChittyOS ecosystem - a deterministic, stateless, non-authoritative architectural navigation layer that helps answer directional architecture questions.
Purpose: ChittyHelper provides read-only orientation about where architectural responsibilities exist in the Chitty ecosystem without executing, validating, or making decisions.
Key Questions ChittyHelper Answers:
- Is this capability already defined?
- Which canonical system owns this?
- Does this design duplicate something?
- Where do I connect?
chittyhelper/
├── docs/ # Design specifications
│ ├── ChittyHelper-Canonical-Design-Spec-v1.0.md # Primary spec
│ ├── REGISTRATION.md # Service registration guide
│ ├── Validation-Summary.md # Validation documentation
│ └── openapi.yaml # OpenAPI specification
├── data/ # Static data artifacts
│ ├── intents/ # Intent classification vocabulary
│ │ ├── manifest.json # Supported intents (I_EXIST, I_OWN, I_DUP, I_DIR)
│ │ └── README.md
│ └── schemas/ # JSON Schema definitions
│ ├── response.schema.json # Response envelope schema
│ ├── registry.record.schema.json # Registry record schema
│ └── examples/ # Example responses
├── scripts/ # Automation scripts
│ ├── register.sh # Registration script for register.chitty.cc
│ ├── registration.json # ChittyHelper's registration payload
│ └── ci/ # CI/CD scripts
├── customgpt/ # ChatGPT Custom GPT integration
│ ├── chittyhelper-actions.json # OpenAPI spec for Custom GPT Actions
│ └── README.md
└── .github/ # GitHub configuration
└── pull_request_template.md
Note: Service registry lookups use registry.chitty.cc - no local registry cache maintained.
ChittyHelper is Class III in the ChittyOS governance hierarchy:
| Class | Authority Level | Example |
|---|---|---|
| I | Canonical control | ChittyChain |
| II | Operational subsystem | ChittyConnect |
| III | Informational navigator | ChittyHelper |
All ChittyHelper responses MUST maintain these invariants:
- Non-authoritative -
authoritative: falsein all responses - Not decision-safe -
decision_safe: falsein all responses - Read-only - All endpoints are side-effect-free
- Stateless - No persistent state across invocations
- Deterministic - Identical inputs produce identical outputs
- Single-sentence responses - Present-tense, no modal verbs
ChittyHelper only handles four intent types:
- I_EXIST - Existence/definition queries ("Is this architecturally defined?")
- I_OWN - Ownership/placement queries ("Where does this live?")
- I_DUP - Duplication/parallelism queries ("Is this duplicating X?")
- I_DIR - Direction/connection queries ("Where do I connect to X?")
Any request outside these intents MUST be refused.
Every response includes one of these definition states:
DEFINED- Capability exists in canonical architectureUNDEFINED- Not yet architecturally definedIMPLICIT- Implied but not explicitly documentedDISTRIBUTED- Spread across multiple systemsCONTESTED- Multiple overlapping definitions exist
{
"system": "chittyhelper",
"system_class": "directional_architecture_navigator",
"authoritative": false,
"decision_safe": false,
"response_type": "directional",
"intent": "I_EXIST",
"definition_state": "DEFINED",
"statement": "This capability is defined in ChittyCanon under core.services.identity.",
"sources": ["chittycanon://core/services/identity"],
"snapshot_time": "2025-12-23T00:00:00Z"
}{
"system": "chittyhelper",
"response_type": "refusal",
"reason": "out_of_scope",
"snapshot_time": "2025-12-23T00:00:00Z"
}All fields are mandatory; no additional properties allowed.
| Route | Method | Purpose | Read-Only |
|---|---|---|---|
/api/helper/ping |
GET | Health indicator | ✓ |
/api/helper/query |
POST | Query architectural questions | ✓ |
/api/helper/registry/:id |
GET | Retrieve registry metadata | ✓ |
ChittyHelper uses registry.chitty.cc for service discovery - no local registry cache is maintained.
Registry Record Schema: See data/schemas/registry.record.schema.json for the data model.
Required Fields:
system_id- Canonical unique identifierownership_scope- Responsibility domaindoc_ref- Canonical documentation URIinterface_ref- Connection endpoint URIlast_verified- Registry verification timestamp
ChittyHelper is registered through ChittyRegister using the standard ChittyOS registration flow.
- Obtain credentials: Get
CHITTY_REGISTER_TOKENfromget.chitty.cc - Submit registration: Run the registration script
- Verify compliance: Check registration status
# Set registration token
export CHITTY_REGISTER_TOKEN="<token from get.chitty.cc>"
# Submit registration (default: register.chitty.cc)
./scripts/register.sh
# Or use Workers fallback
./scripts/register.sh chittyregister-production.chitty.workers.dev
# Check compliance status
curl -sS https://register.chitty.cc/api/v1/compliance/chittyhelper | jq .The customgpt/ directory contains a self-contained OpenAPI specification for integrating ChittyHelper into ChatGPT Custom GPT Actions.
Import Steps:
- In ChatGPT, create/edit your GPT → Configure → Actions → Add new action
- Import
customgpt/chittyhelper-actions.json(or YAML variant) - Update server URL to deployed ChittyHelper host
- Save configuration
All responses must validate against data/schemas/response.schema.json:
- Use JSON Schema Draft 2020-12
- Enforce
additionalProperties: false - All required fields must be present
- Enums must match exactly (case-sensitive)
- Design specifications are frozen/hand-off status
- All documentation uses present-tense, declarative statements
- No modal verbs ("should", "could", "would") in specifications
- Single-sentence statements with no line breaks
ChittyHelper references but never substitutes these canonical systems:
| System | Function | Helper's Role |
|---|---|---|
| ChittyCanon | Architectural defs | Reference only |
| ChittyID | Identity & authority | Name lookup |
| ChittyCert | Trust & signing | Reference only |
| ChittyChain | Proof & audit | Reference only |
| ChittyConnect | Access & delegation | Connection index |
| ChittyRegistry | Service discovery | Index consumer |
| ChittyRegister | Service onboarding | Registration |
- Never execute or validate - ChittyHelper only provides directional information
- Never make decisions - Responses guide but do not decide
- Never store state - No persistence, caching, or session management
- Never hold secrets - No credentials or tokens stored
- Never mutate canonical systems - Read-only access to all references
- Always refuse out-of-scope requests - Strict intent classification
- Always include snapshot_time - All responses timestamped
S0 Idle
→ S1 Ingest (receive query)
→ S2 Classify (determine intent)
→ S3 Validate (check scope)
├─ allowed → S4 Resolve → S5 Assemble → S6 Envelope → S8 Emit
└─ out-of-scope → S7 Refuse
Terminal states: S7 (Refusal) and S8 (Response Emitted).
Use the registration script to register with ChittyRegister:
export CHITTY_REGISTER_TOKEN="<token from get.chitty.cc>"
./scripts/register.shRegistration payload is in scripts/registration.json.
Example responses are in data/schemas/examples/:
directional-response.example.jsonrefusal-response.example.jsonregistry-record.example.json
Use these as templates for validation testing.
- All docs in
docs/are design artifacts - Canonical spec is frozen (v1.0)
- Operational docs can be updated
- Follow declarative, present-tense style
When submitting PRs, use the template checklist:
- Tests added/updated (if applicable)
- Documentation updated (if applicable)
- No secrets or tokens committed
AI review bots configured via .coderabbit.yml:
- CodeRabbit: @coderabbitai
- Focus areas: security, correctness, performance, maintainability