← ClaudeAtlas

scryer-prolog-standardslisted

Coding standards and guidelines for pure Scryer Prolog projects. Use when writing, refactoring, or debugging Prolog code specifically for Scryer Prolog.
dougransom/prolog-agent-toolkit · ★ 4 · Code & Development · score 60
Install: claude install-skill dougransom/prolog-agent-toolkit
# [Scryer Prolog](https://github.com/mthom/scryer-prolog) Standards When writing, refactoring, or reviewing Prolog code for Scryer Prolog, adhere to these standards: ## Core Rules Scryer Prolog guidelines emphasize pure Prolog conventions and standard ISO-compliant code structures: - **General Prolog Conventions**: Inherits all general rules from [Portable ISO Prolog Conventions](../prolog-conventions/SKILL.md) (strings as `chars`, safe [`library(si)`](https://github.com/mthom/scryer-prolog/blob/master/src/lib/si.pl) type tests, `dif/2`, `if_/3` reification from [`library(reif)`](https://github.com/mthom/scryer-prolog/blob/master/src/lib/reif.pl), higher-order `call/N`, `call//N`, and [`library(lambda)`](https://github.com/mthom/scryer-prolog/blob/master/src/lib/lambda.pl)). Agents should attempt to write ISO-compliant code subject to Scryer's capabilities. - **No Non-Standard Specifics**: Never use [SWI-Prolog](https://www.swi-prolog.org/) specifics like dicts, SWI string types, or `is_list/1`. - **Required Library Imports**: Always explicitly declare imports using `:- use_module(library(...)).`. Do not rely on SWI-Prolog autoloading. - **Library Cheat-Sheet Usage**: Rely on the Standard Library Cheat Sheet below for module declarations; do NOT read raw standard library source files unless working with un-documented custom project code. - **Safety Execution**: Execute code using `scryer-safe` or `prolog-safe` with `PROLOG_ENGINE=scryer`. ## Scryer Prolog Standard Librar