mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-20 21:49:28 +00:00
chore: add kiro spec-driven tooling and steering docs
Add the Kiro-style agentic SDLC tooling used to drive this project: the .opencode/skills/kiro-* skill set (discovery, spec init/requirements/design/ tasks, validation, implementation, review, steering), the .kiro/settings templates, and AGENTS.md describing the workflow. Update the spec docs (assessment/design/requirements/tasks) to current state. Scope tests/test_opencode_skills.py to the project's own openultrasast-* skills so the third-party kiro-* tooling (which uses a different frontmatter convention) no longer breaks the frontmatter check. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
8fe8911020
commit
6699f1f8f9
@@ -0,0 +1,69 @@
|
||||
# API Standards
|
||||
|
||||
[Purpose: consistent API patterns for naming, structure, auth, versioning, and errors]
|
||||
|
||||
## Philosophy
|
||||
- Prefer predictable, resource-oriented design
|
||||
- Be explicit in contracts; minimize breaking changes
|
||||
- Secure by default (auth first, least privilege)
|
||||
|
||||
## Endpoint Pattern
|
||||
```
|
||||
/{version}/{resource}[/{id}][/{sub-resource}]
|
||||
```
|
||||
Examples:
|
||||
- `/api/v1/users`
|
||||
- `/api/v1/users/:id`
|
||||
- `/api/v1/users/:id/posts`
|
||||
|
||||
HTTP verbs:
|
||||
- GET (read, safe, idempotent)
|
||||
- POST (create)
|
||||
- PUT/PATCH (update)
|
||||
- DELETE (remove, idempotent)
|
||||
|
||||
## Request/Response
|
||||
|
||||
Request (typical):
|
||||
```json
|
||||
{ "data": { ... }, "metadata": { "requestId": "..." } }
|
||||
```
|
||||
|
||||
Success:
|
||||
```json
|
||||
{ "data": { ... }, "meta": { "timestamp": "...", "version": "..." } }
|
||||
```
|
||||
|
||||
Error:
|
||||
```json
|
||||
{ "error": { "code": "ERROR_CODE", "message": "...", "field": "optional" } }
|
||||
```
|
||||
(See error-handling for rules.)
|
||||
|
||||
## Status Codes (pattern)
|
||||
- 2xx: Success (200 read, 201 create, 204 delete)
|
||||
- 4xx: Client issues (400 validation, 401/403 auth, 404 missing)
|
||||
- 5xx: Server issues (500 generic, 503 unavailable)
|
||||
Choose the status that best reflects the outcome.
|
||||
|
||||
## Authentication
|
||||
- Credentials in standard location
|
||||
```
|
||||
Authorization: Bearer {token}
|
||||
```
|
||||
- Reject unauthenticated before business logic
|
||||
|
||||
## Versioning
|
||||
- Version via URL/header/media-type
|
||||
- Breaking change → new version
|
||||
- Non-breaking → same version
|
||||
- Provide deprecation window and comms
|
||||
|
||||
## Pagination/Filtering (if applicable)
|
||||
- Pagination: `page`, `pageSize` or cursor-based
|
||||
- Filtering: explicit query params
|
||||
- Sorting: `sort=field:asc|desc`
|
||||
Return pagination metadata in `meta`.
|
||||
|
||||
---
|
||||
_Focus on patterns and decisions, not endpoint catalogs._
|
||||
Reference in New Issue
Block a user