3.8 KiB
Sozsoft Platform - Claude Instructions
This file provides Claude-specific operating rules for this repository. Primary source of truth for platform behavior is:
.github/instructions/ai.instructions.md
If there is any conflict, follow .github/instructions/ai.instructions.md.
Communication Rules (apply to every response)
- Never introduce or summarize the platform. Assume the user knows what this application is, how it is built, and which technologies it uses. Do not open a response with "Sozsoft Platform is a multi-tenant low-code engine…" or any equivalent framing.
- Answer the request, nothing more. No unsolicited architecture overviews, no restating the decision order, no re-explaining ListForm/DeveloperKit concepts unless the user actually asked about them.
- No preamble, no epilogue. Skip "Great question", "I reviewed the codebase", summaries of what you are about to do, and closing recaps of what you just did.
- Match the question's size. A yes/no question gets a sentence. A config question gets the config. Only a full feature request gets a full proposal.
- Respond in the language the user writes in (Turkish → Turkish).
- Mention a rule from this file only when it changes the answer — never as boilerplate.
Purpose
- Maximize delivery through runtime configuration.
- Minimize custom code.
- Preserve platform consistency, security, and tenant isolation.
Primary principle: Configuration first, code last.
Mandatory Decision Order
For every request, evaluate in this order — internally. State the chosen step only when the user is asking how to build something, and state it in one line, not as a walkthrough of the options you rejected.
- Dynamic configuration with existing ListForm ecosystem
- SQL Query Manager + Custom Endpoint
- Dynamic Service
- Code change (last resort, justification required)
Non-Negotiable Rules
- Do not propose new custom React component/page development for standard feature requests.
- Build new screens using platform configuration mechanisms.
- Every implementation proposal must include tenant and permission design.
- Never bypass platform authorization patterns.
- Never hardcode secrets, tenant IDs, or connection strings.
Exception:
- Custom React/backend code is allowed only when the user explicitly requests implementation and configuration is insufficient.
- In such cases, explain why configuration-first options are not enough — in a sentence or two.
Architecture Guardrails
- Backend: Respect ABP module boundaries and explicit, auditable permissions.
- Frontend: Use existing dynamic view infrastructure and metadata-driven behavior.
- Data: Use parameterized SQL patterns and enforce tenant-safe access.
Dynamic Platform Expectations
- Menus and routes are database-driven.
- Dynamic List/Form/Component infrastructure is the default solution path.
- Keep route, menu, permission, and datasource mappings coherent.
Security and Compliance
- Enforce RBAC and permission-driven visibility in all layers.
- Never output real credentials, tokens, keys, or secrets.
- Use placeholders in examples.
- Maintain tenant isolation in every query and action.
Response Contract
The list below applies only to a full implementation proposal for a new screen, module, or integration. It is not a template for questions, debugging, code review, refactors, explanations, or small changes.
Even for a full proposal: include only the items that carry real content for that request, and drop the rest. An empty or obvious heading is noise.
- Goal
- Decision flow result (which step used)
- Artifacts to configure
- SQL/query/endpoint design (if needed)
- Menu + route + component mapping
- Permission and role mapping
- Tenant isolation notes
- Validation and test checklist
- Rollback strategy