A collection of example skill modules demonstrating various execution patterns (declarative, flow, agentic, background-agentic) for the OS Loop platform. Includes skills for research, batch processing, greeting generation, note organization, project tracking, file indexing, git status checking, and macOS shortcuts.
All 10 tools share the same name 'execute', violating fundamental naming conventions. While descriptions are present (avg ~180 chars, within baseline), they lack parameter-level documentation. Input schemas are visible but incomplete: most parameters lack type constraints, enums are missing for multi-action tools, and no output schemas are documented. Error handling is absent. The server appears to be a skill framework rather than a traditional MCP tool server, but tool definitions must still follow MCP quality standards.
Reverses the characters of the input text. Minimal declarative skill demonstrating the simplest possible skill implementation with one input, one output, no workspace, no LLM, no network.
Flow skill that generates a personalized greeting through multiple steps: generates an initial greeting using the LLM, pauses to request user input for personalization preferences, refines the greeting with the user's preference, and returns the final result.
File indexer that lists files in a directory with optional extension filtering. Uses bridge filesystem API when available, falls back to browser File System Access API.
Git status checker that invokes the system_execute_command tool to run 'git status --porcelain --branch' and parses the output to extract branch name and repository cleanliness.
macOS Shortcuts runner that invokes the system_execute_command tool to execute a named macOS Shortcut with optional text input.
Agentic research assistant that identifies subtopics from a query, analyzes each one, synthesizes findings across subtopics, and produces a final report artifact. Respects step budget and supports resumable execution across three phases: research, analysis, and report.
Background-capable batch processor that processes items one at a time with checkpoint support for resumable execution. Performs character frequency analysis on each item payload and creates a summary artifact with results, errors, and pending items.
All 10 tools named 'execute', violates verb_noun naming convention and makes tools indistinguishable to LLMs. Should be 'run_research', 'process_batch', 'reverse_text', 'generate_greeting', etc.
Multi-action tools (note-organizer, project-tracker) use 'action' enum parameter but lack per-action parameter documentation. LLMs cannot determine which params apply to which actions.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured results. Descriptions mention 'artifact' creation but return type is not specified.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 30 | <=2025-11-25 | v2 |
Generates a personalized greeting with optional workspace persistence. Loads saved preferences (style, language, greeting count), merges any overrides from the current invocation, generates a greeting that acknowledges returning users, and saves updated preferences back to workspace.
Note organizer skill supporting multiple actions: add (create notes with auto-tagging), search (find notes by text or tags), list (show all notes), tag (add tags to existing notes), and export (create artifact with all notes as markdown).
Project tracker skill supporting multiple actions: init (create a new project), add-task (add a task to the project), update-task (change task status), generate-report (create a status report artifact using LLM), and advance-phase (move project through planning, execution, review, complete phases).
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next.
Optional parameters lack defaults or clear guidance on behavior when omitted. E.g., 'occasion' defaults to 'general' but 'extensions' array behavior when empty is undocumented.