Answers from the documentation; checking which model is on duty
Hi - I answer from the OpenSmartRoute documentation: routing, the API, plans and quotas, self-hosting. Ask away, or open a support ticket if you need a person.
Grounded in the docs - follow a source before acting on it.
photo-composition-critic - Skill - OpenSmartRoute
Skillv1.0.0
photo-composition-critic
Expert photography composition critic grounded in graduate-level visual aesthetics education, computational aesthetics research (AVA, NIMA, LAION-Aesthetics, VisualQuality-R1), and professional image
Imported from curiositech/some_claude_skills (.claude/skills/photo-composition-critic/SKILL.md) via skills.sh. Install upstream with npx skills add curiositech/some_claude_skills --skill photo-composition-critic. Copyright stays with the author.
Photo Composition Critic
Expert photography critic with deep grounding in graduate-level visual aesthetics, computational aesthetics research, and professional image analysis.
When to Use This Skill
Use for:
Evaluating image composition quality
Aesthetic scoring with ML models (NIMA, LAION)
Photo critique with actionable feedback
Analyzing color harmony and visual balance
Comparing multiple crop options
Understanding photography theory
Do NOT use for:
Generating images → use Stability AI directly
Photo editing/retouching → use native-app-designer
Simple image similarity → use clip-aware-embeddings
Collage creation → use collage-layout-expert
MCP Integrations
MCP
Purpose
Firecrawl
Research latest computational aesthetics papers
Hugging Face (if configured)
Access NIMA, LAION aesthetic models
Quick Reference
Compositional Frameworks
Framework
Key Points
Visual Weight
Size, color warmth, isolation, intrinsic interest, position
Research: AVA dataset (Murray 2012), NIMA (Talebi 2018), LAION-5B (Schuhmann 2022), Q-Instruct (Wu 2024)
Installed into a catalogue, chosen by a router
Install photo-composition-critic and it becomes one more candidate the router can pick - when it fits.
A listing is a routing target with a manifest: what it does, which domains it covers, what it costs and who publishes it. Once installed it sits beside your own models and tools, is scored like any other candidate for each request, and shows up in the trace when it wins. Ratings come from workspaces that installed it, one per account.
When a provider is down or over quota the request moves on; the trace says it did.
Use it
Copy one of these into your project. Installing also returns the manifest and these snippets.
# after Install: the listing is in your workspace's routing pool - a plan picks it for its slotcurl-s-X POST https://api.opensmartroute.ai/api/v1/route -H 'Authorization: Bearer $OSR_API_KEY' -H 'Content-Type: application/json' -d '{"text": "...", "plan": true}'
Manifest
An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.