-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
github-actions[bot] edited this page Aug 27, 2026
·
1 revision
Thanks for helping improve AssessmentOS.
- Follow Local-Setup.
- Prefer small, focused PRs.
- Keep new code under the
@assessment-os/*package scope. - Run
pnpm --filter @assessment-os/core testafter changing session logic. - Documentation lives in
docs/and syncs to the GitHub Wiki — edit markdown in the repo, not only on the wiki (wiki is overwritten on sync).
Question types implement the QuestionPlugin contract from @assessment-os/core:
interface QuestionPlugin<TConfig, TAnswer> {
type: string;
validateConfig(input: unknown): TConfig;
grade(args: {
config: TConfig;
answer: TAnswer | null;
workspace?: unknown;
points: number;
}): Promise<GradeResult>;
Builder?: unknown;
Renderer?: unknown;
Reviewer?: unknown;
}-
Package —
packages/question-<name>with validate/grade (+ optionalreact.tsx). -
Register —
apps/api/src/plugins-registry.ts. -
Candidate-safe config — strip secrets (hidden tests) in
candidateSafeConfig. -
UI — candidate
/t/[token], admin builder, session reviewer. - Grading I/O — keep pure scoring in the plugin; orchestrate runners in the API (see coding).
- Docs — mention the type in Architecture / Question-Types when it graduates past a stub.
- Activity event types are fixed:
focus_lost,paste,tab_hidden,save,submit,skip,open. - Session mutations go through core helpers — do not invent parallel state machines in the API.
Coding harness details: Coding-Runner. Agent authoring: MCP.
See Home for enabling Wikis and setting the WIKI_TOKEN Actions secret. Workflow: .github/workflows/sync-wiki.yml.
By contributing you agree your contributions are licensed under AGPL-3.0-only.
Edit documentation in the repository docs/ folder on main. This wiki is synced automatically; direct wiki-only edits may be overwritten.