Ingest Government Orders

VerifiedCaution

Fetch Kerala Government Orders, Circulars, and Bills from official portals, parse them, and write to a TypeScript data file.

Sby Skills Guide Bot
Data & AIIntermediate
7/22/2026
Claude Code
#data-ingestion#government-orders#pdf-parsing#entity-tagging#typescript-data

Recommended for

Automated summary

Fetches Kerala Government Orders, Circulars and Legislative Bills from official portals, parses the GO number and writes a typed GovernmentOrder record into data/government-orders.ts.

Strengths

  • Defines a clear priority order across four source portals, with the Kerala document portal as the primary hub
  • Specifies the exact GO number format (type, number, year, department code) with concrete examples
  • Enforces traceability: no record ships without a primary source URL
  • Uses a two-stage department tagging approach that starts with a high-confidence match on the GO number suffix

Limitations

  • Tightly coupled to Kerala and this project's data shape, so it does not transfer to other jurisdictions or schemas
  • The department code lookup table is truncated in the provided document, and the target portals are HTML sites whose layout can change
  • Does not address TypeScript schema validation or de-duplication when adding several records at once
When to use it

Use it when adding one or more Kerala GOs, Circulars, SROs or Bills to the dashboard with a verifiable source link.

When not to use it

Avoid it for documents from another state or country, or when no primary source URL can be supplied.

Security analysis

Caution
Quality score82/100

The skill uses network fetching and local file writes, both powerful but applied for a clearly legitimate purpose (ingesting public government orders). There are no destructive commands, no curl|sh piping, no base64/obfuscated payloads, no attempts to read or exfiltrate secrets, and no instructions to disable safety controls. The only risk is the inherent power of network + filesystem access, so it is rated caution rather than safe.

Findings
  • •Instructs the agent to fetch content from external government portals over the network (document.kerala.gov.in, go.lsgkerala.gov.in, niyamasabha.nic.in, wcd.kerala.gov.in), which requires network tooling.
  • •Instructs writing records into a local source file (data/government-orders.ts), a file-modification action.
  • •No declared allowed-tools, so the agent's actual tool surface is unspecified.
How this analysis is made

Examples

Add a specific GO by number
Ingest G.O.(P) No.162/2021/Fin into the dashboard: find the PDF on document.kerala.gov.in, parse the GO number, tag it to the finance department, and write the GovernmentOrder record.
Bulk ingest recent orders
Pull the last 30 days of Health & Family Welfare GOs from document.kerala.gov.in and add each one as a typed GovernmentOrder record in data/government-orders.ts with its source URL.
Add passed legislative bills
Add the recently passed bills from the Niyamasabha Bills Passed page as GovernmentOrder records with type "Bill", linking each to its PDF source.

name: ingest-go description: Fetch Kerala Government Orders (GOs), Circulars, and Legislative Bills from official portals, parse the GO number, tag each record to the correct department, and write a typed GovernmentOrder record to data/government-orders.ts. Use whenever adding GOs, Circulars, SROs, or Bills to the dashboard. disable-model-invocation: true

Ingest Government Order (ingest-go)

Adds one or more GovernmentOrder records to data/government-orders.ts. Every record must be traceable to a primary source URL and tagged to a department. No source URL = record does not ship.

Full spec: docs/plans/ingest-go-spec.md


Source portals

Fetch from these in priority order:

| Priority | Portal | URL | Covers | | -------- | -------------------- | ---------------------------------------------------------------- | ----------------------------- | | 1 | Document Portal, GoK | https://document.kerala.gov.in | All departments — primary hub | | 2 | LSG Orders portal | https://go.lsgkerala.gov.in | LSG-specific only | | 3 | Niyamasabha Bills | https://niyamasabha.nic.in/index.php/business/index/bills_passed | Legislative Bills | | 4 | WCD Orders | https://wcd.kerala.gov.in/gov_orders.php | Women & Child Dev only |

Tip: If you have a GO number like G.O.(P) No.162/2021/Fin, search it directly in the document portal's search box to pull the exact PDF link.


Step 1 — Fetch

Document portal (document.kerala.gov.in)

  • Default view shows the last 30 days.
  • Use Advanced Search to filter by department, GO type, and date range.
  • Retrieve the PDF URL for each result — this becomes meta.sourceUrl.

Niyamasabha bills

  • Navigate to the Bills Passed section.
  • Each bill entry should yield a PDF link (meta.sourceUrl) and a date.

Fallback portals

  • Use go.lsgkerala.gov.in or wcd.kerala.gov.in/gov_orders.php only when the document portal is missing a specific order.

Step 2 — Parse the GO number

Kerala GO numbers follow this format:

G.O.(<type>) No.<number>/<year>/<DeptCode>

Examples:

G.O.(P) No.162/2021/Fin    → type=P, number=162, year=2021, deptCode=Fin
G.O.(Ms) No.45/2024/Rev    → type=Ms, number=45, year=2024, deptCode=Rev
G.O.(Rt) No.1180/2023/H&FWD → type=Rt, number=1180, year=2023, deptCode=H&FWD
SRO No.12/2024             → type=SRO, number=12, year=2024, deptCode=null

Bills and Circulars may not have a structured GO number — record the number as-is and set type: "Bill" or type: "Circular" accordingly.


Step 3 — Tag the department (two-stage)

Stage 1 — GO number suffix (confidence: high)

Match deptCode (case-insensitive) against this table:

| deptCode | dept.id | | ---------------- | -------------------------------- | | Fin | dept.finance | | Rev | dept.revenue | | H&FWD, HFWD, HFW | dept.health-family-welfare | | GAD, Gen | dept.cmo | | LSG | dept.local-self-government | | Edu, GEdn | dept.general-education | | HEdn | dept.higher-education | | Home | dept.home | | PWD | dept.public-works | | Tran | dept.transport | | Lab | dept.labour-skills | | For | dept.forest-wildlife | | Ind | dept.industries-commerce | | Agri | dept.agriculture-farmers-welfare | | Coop | dept.cooperation | | Fish | dept.fisheries-harbour | | Pwr, Elec | dept.power | | WR, Irr | dept.water-resources | | SC/ST, SCSTBCD | dept.scheduled-castes-tribes-bcd | | WCD | dept.women-child-development | | Tur | dept.tourism | | Vig | dept.vigilance | | Exc | dept.excise | | Plan | dept.planning-economic-affairs | | Dev, Devaswom | dept.devaswom | | Min | dept.minority-welfare | | IT, ICT | dept.electronics-it | | Cult | dept.cultural-affairs | | Port | dept.ports | | Yth | dept.youth-welfare | | Law | dept.law |

If matched → set deptId and deptConfidence: "high". Skip Stage 2.

Stage 2 — Keyword fallback (confidence: medium)

If Stage 1 didn't match, scan the GO subject line for the name or nameMl of each department in data/departments.ts. First match wins.

If matched → set deptId and deptConfidence: "medium".

Fallback — ambiguous (confidence: low)

If neither stage matched, set deptId: undefined and deptConfidence: "low". Do not guess. The UI will render these with a visual caveat.


Step 4 — Build the record

Use this template:

{
  id: "go.<year>-<deptCode-lower>-<number>",
  goNumber: "<raw GO number string>",
  type: "P",           // P | Ms | Rt | SRO | Circular | Bill
  subject: "<English subject from document>",
  // subjectMl: "<Malayalam subject — only if printed on document; never translate>",
  deptId: "dept.<id>", // omit if deptConfidence is "low"
  deptConfidence: "high", // high | medium | low
  date: "2021-06-15",  // ISO date from the document
  // effectiveDate: "2021-07-01", // only if different from date
  meta: {
    source: "Document Portal, Government of Kerala",
    sourceUrl: "https://document.kerala.gov.in/...", // direct PDF URL — mandatory
    retrievedAt: "<ISO timestamp of this fetch>",
  },
  dataStatus: "verified",
},

ID examples:

  • G.O.(P) No.162/2021/Fin → go.2021-fin-162
  • G.O.(Rt) No.1180/2023/H&FWD → go.2023-hfwd-1180
  • SRO No.12/2024 → go.2024-sro-12
  • Circular with no number → go.<year>-misc-<sequential>

Step 5 — Tooltip rule (non-negotiable)

Any UI component that renders this record MUST display a tooltip showing:

  • meta.source — the portal name
  • meta.sourceUrl — as a clickable link

This applies to table rows, cards, and detail views. No tooltip = no merge.


Step 6 — After editing

  1. Append the new record(s) to GOVERNMENT_ORDERS in data/government-orders.ts
  2. Bump SEED_VERSION in data/db.ts
  3. Run deno task check — must pass fmt + lint + type check
  4. If a UI route exists: verify the record renders with the correct dept badge and tooltip

Common mistakes

  • Omitting meta.sourceUrl — this is the single most important field. Every GO has a PDF on the portal; find it.
  • Guessing the department when Stage 1 + 2 both fail — set deptConfidence: "low" and leave deptId undefined. An incorrect tag is worse than an untagged record.
  • Machine-translating subjectMl — only populate if the Malayalam subject appears on the document itself.
  • Forgetting SEED_VERSION bump — the new record will silently not appear.
  • Using a /thumb/ or search-result URL as meta.sourceUrl — use the direct PDF URL so the link is stable.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/ingest-government-orders-mrwak9mg/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/ingest-government-orders-mrwak9mg' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/ingest-government-orders-mrwak9mg/download' --output '.skill-downloads/ingest-government-orders-mrwak9mg/SKILL.md.part' && mv '.skill-downloads/ingest-government-orders-mrwak9mg/SKILL.md.part' '.skill-downloads/ingest-government-orders-mrwak9mg/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/ingest-government-orders-mrwak9mg/SKILL.md' && test -s '.skill-downloads/ingest-government-orders-mrwak9mg/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ingest-go' && cp -R '.skill-downloads/ingest-government-orders-mrwak9mg' '.claude/skills/ingest-go'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/ingest-government-orders-mrwak9mg'

openskills read 'ingest-government-orders-mrwak9mg'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/ingest-government-orders-mrwak9mg/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills