Write AI prompts in TypeScript and run them with any harness that supports skills (claude code, codex, opencode, copilot, cursor, windsurf, etc.)
SaferSkills independently audited mantiq (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
When the user runs /mantiq <filepath>, follow the steps below.
Run the following command to retrieve the TypeScript code to execute:
mantiq code <filepath>This outputs TypeScript code containing:
main function body with all logicDO NOT read the <filepath> file directly. Use the mantiq code command to get the code.
Execute the main function line by line as a TypeScript runtime.
When you encounter a call to a declared function, execute it by running:
mantiq call <filepath> <function_name> <args>Arguments must be passed as a single JSON string. For example:
mantiq call ./review.ts approve_review '{"id": "abc123"}'The output is the return value of the function, serialized as JSON.
think<T>(question)This is a special function. When you encounter a call to think, you must think about the question and return a value of the specified type T.
Do not run mantiq call for think. Instead, reason about the question and provide the answer yourself in the requested type.
Examples:
think<boolean>("Is this email spam? " + email) → return true or falsethink<'positive' | 'negative' | 'neutral'>("Analyze sentiment: " + text) → return one of the union membersthink<string>("Write a commit message for: " + diff) → return a stringact<T>(task)This is a special function. When you encounter a call to act, you must perform the described task using your available tools.
Do not run mantiq call for act. Instead, carry out the task yourself.
If a return type T is specified (other than void), return the result in that type.
Examples:
act("Commit the changes with message: " + msg) → commit the changes, return nothingact<number>("Ask the user their age") → ask the user and return the numbermain function in order, respecting all control flow (while, if/else, try/catch).~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.