jadwal-sholat: Instructions file for Codex

AGENTS.md

jadwal-sholat AGENTS.md is an instructions file for Codex, OpenCode from haikelz/jadwal-sholat. It costs 3,572 tokens per session, scanned A, original, MIT.

A repository guide for a Next.js application called jadwal-sholat, including its folder structure, development commands, implementation conventions, and accessibility and SEO expectations.

In plain words
What is it for?
Use it when installing dependencies, starting the web app, type-checking, building, running browser tests, or changing its TypeScript, React, Tailwind, and shared UI code. It also guides responsive design, headings, focus states, and accessible controls.
Why use it?
It gives the coding agent project-specific rules instead of making assumptions about how the application should be run or changed. It also highlights requirements that are easy to miss, such as mobile layouts and keyboard access.

Instructions file for CodexOpenCode

Written for Codex and OpenCode: the file is AGENTS.md. Also seen: positional $N argument; mentions AGENTS.md.

This is haikelz/jadwal-sholat's own configuration. It tells Codex and OpenCode how to work on jadwal-sholat itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything jadwal-sholat configures →

Reuse

Borrowing it

Nothing to install: this file belongs to haikelz/jadwal-sholat. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/haikelz/jadwal-sholat/master/AGENTS.md
Clone the repo
git clone --depth 1 https://github.com/haikelz/jadwal-sholat

Made for: Codex, OpenCode.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for jadwal-sholat AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/haikelz/jadwal-sholat/agents-md/github.svg)](https://agentmods.dev/instructions/haikelz/jadwal-sholat/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/haikelz/jadwal-sholat/agents-md"><img src="https://agentmods.dev/badge/instructions/haikelz/jadwal-sholat/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for jadwal-sholat AGENTS.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/haikelz/jadwal-sholat/agents-md"><img src="https://agentmods.dev/badge/instructions/haikelz/jadwal-sholat/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 3,572 This file is loaded in full into every session.
When invoked 3,572 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.03572 $0.03572
Opus 5.5 $0.01429 $0.01429
Sonnet 5.5 $0.00714 $0.00714
Haiku 4.5 $0.00357 $0.00357

Measured today against content hash 9743e51b87a7, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

jadwal-sholat AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 145 lines

How it starts

The opening of the file, as written. The whole thing — 145 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Repository guide

Project structure

  • apps/web is the website: Astro 7 with React islands, built as static files for Cloudflare Pages. See apps/web/AGENTS.md.
  • apps/mobile is the Android app (Expo SDK 58, Expo Router, NativeWind v4 + React Native Reusables). See apps/mobile/AGENTS.md.
  • packages/core holds framework-free domain code shared by the website and the Android app: API schemas and URL builders, prayer logic, the adzan schedule, dates, share links, Qur'an and puasa helpers, and bundled static data. It must never import React, React Query or zustand.
  • Both apps pin the same react, react-dom, @types/react and @types/react-dom: the versions the Expo SDK in apps/mobile requires. A fresh install (Cloudflare Pages, EAS) hoists one copy per package for the whole workspace, so two versions mix type definitions and can load two Reacts. Bump them together.
  • packages/typescript-config contains the shared TypeScript configs.
  • static/docs contains README screenshots.
  • Run workspace commands from the repository root unless a command says otherwise.

Commands

  • Install dependencies: bun install
  • Website: bun run dev:web (http://localhost:4321), bun run build:web (static output in apps/web/dist), bun run test:web (Cypress against bun run preview running in apps/web), type-check with cd apps/web && bun run check.
  • Core tests and types: bun run test:core, bun run typecheck:core
  • Android app: bun run dev:mobile (Metro for Expo Go or a development build), bun run typecheck:mobile, bun run build:android (preview APK on EAS). Native code compiles on EAS only; don't run Gradle or expo run:android locally.

The website build fetches the 114 surahs and the hadith book list from the public APIs, so it needs network access. Builds are memory-heavy: stop dev servers before building, and run one build at a time.

Implementation conventions (website)

  • Use TypeScript, Astro pages with React islands, Tailwind CSS v4, shadcn/ui (radix-nova style), and ReUI.
  • Prefer shared components in src/components/ui (shadcn) and src/components/reui (ReUI) over custom interactive elements. Tables use the ReUI data grid, modals use Dialog, toasts use sonner.
  • Install components from apps/web with bunx --bun shadcn@latest add <name> --yes (ReUI items as @reui/<name>). The CLI writes import { cn } from "cn" and adds a cn package: change the imports to @/lib/utils/cn and run bun remove cn.
  • Do not restyle installed components (radius, height, padding, shadow); use their size and variant props, and change the look through the theme tokens in src/styles/global.css.
  • Every page renders BaseLayout (src/layouts/BaseLayout.astro); its content uses PageShell and PageHeader from src/components/common/page-shell.tsx. The site is a companion app, not a dashboard, so it uses two layouts:
    • Glance pages (homepage schedule, city schedules, Puasa Sunnah): <PageShell>. The homepage leads with the next prayer as plain type and keeps a Frame only around the month data grid; Puasa Sunnah keeps its Frame and data grid.
    • Reading pages (Qur'an, named ayat, hadith, Asma'ul Husna): no frames around content; separate items with plain bordered rows and generous spacing. List pages use the default site width and flow their rows into columns from md up (grid md:grid-cols-2, lg:grid-cols-3 for short rows like surahs); in a grid give each row border-b and the list border-t, because divide-y breaks across columns; detail pages (a surah, a hadith) use <PageShell width="reading">, a centered 768px column with a centered header (PageHeader align="center" or the surah's mushaf-style header).
  • Widths: the top bar and every PageShell share one site width (max-w-5xl), so page edges line up; only detail pages narrow to the reading column. Don't add page-level max-w-* elsewhere.
  • Navigation is a top bar with the five sections from md up and a bottom tab bar below md (src/components/layout); there is no sidebar and there are no breadcrumbs. On phones, detail pages show a back link in the top bar. PageShell reserves pb-24 for the bar on mobile.
  • Design for desktop as well as phones: use the width for columns or a richer view (the Puasa Sunnah month calendar) instead of stretching phone rows. SearchBar focuses on / and shows the hint from md up.
  • Share detail content with ShareButton from src/components/common/share-button.tsx (links built by getShareLinks in src/lib/helpers/share-links.ts, absolute URLs from SITE_URL). Ayah links use the #ayat-N anchors.
  • Give every data region a Skeleton loading state, an Empty state with one action, and an inline Alert error with a retry.
  • Fetch with getData from src/lib/utils/get-data.ts (native fetch); in islands use useFetch, which accepts build-time initialData and skips the request while its URL is "".
  • Read the current time with the useNow() hook and format it with getDateParts() from src/lib/utils/date-parts.ts. Never compute dates at module level or during the build: static pages would bake in the build date, and open tabs go stale after midnight.
  • Read API URLs from src/lib/utils/public-env.ts. The browser calls the APIs directly, except puasa, which goes through the /api/sunnah-fasting proxy in public/_worker.js.
  • Pass only the fields an island renders: island props are serialized into the page's HTML (the surah page trims the API response).
  • Keep mobile styles as the default; add larger-screen behavior with responsive variants.
  • Preserve one <main> landmark, a logical heading hierarchy, visible focus states, keyboard behavior, and accessible names for every control.
  • Keep mobile form text at text-base; use sm:text-sm only above the mobile breakpoint.
  • Use arabic-font and lang="ar" for Arabic source text. The LPMQ font is defined in src/styles/global.css and served from public/fonts. Size Arabic text with [--arabic-size:<rem>], never a text-* class, so the reader's Arabic size setting applies.
  • Follow the all-ages profile in apps/web/DESIGN.md: the root text scale (body text-sm renders at about 16px), a visible word beside every icon in a button, default-size actions, and plain words beside jargon.
  • Respect prefers-reduced-motion; do not add unconditional motion or smooth scrolling. Use CSS (tw-animate-css utilities) for motion rather than an animation library.
  • Write interface copy in clear Indonesian and use sentence case.

Read the full file on GitHub · 145 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today Changed · +98 tokens per session 9743e51b87a7
  2. 2d ago Changed · +3 lines · +338 tokens per session 81853f8406e3
  3. 3d ago Changed · -11 lines · -47 tokens per session 704cdf1b8134
  4. 4d ago Changed · +3 lines · +89 tokens per session e6c64b8b3e1d
  5. 5d ago Changed · +10 lines · +606 tokens per session ce60088d7631
  6. 6d ago Changed · +2 lines · +163 tokens per session 707b20f0191a
  7. 7d ago Changed · +1 lines · +94 tokens per session 14a84e1e5454
  8. 8d ago Changed · +81 lines · +1,667 tokens per session f96e5698247a
  9. 1mo ago First seen · 56 lines · 564 tokens per session scan A 33e69cd0f7d0

Subscribe to this mod's changes

jadwal-sholat AGENTS.md is an instructions file published in the GitHub repository haikelz/jadwal-sholat (94 stars, last pushed yesterday), licensed MIT. It adds 3,572 tokens to every session, about $0.0143 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other instructions, from other repositories