Generate Codebook
Aperivue/medsci-skills
A skill your agent uses when a tabular dataset (CSV, Excel, Parquet, Stata, SAS) needs a data dictionary.
A skill your agent uses to set up, create, or generate an academic calendar for Education Cloud orgs.
$ npx skills add forcedotcom/sf-skills --skill education-cloud-academic-calendar-generate -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install forcedotcom/sf-skills education-cloud-academic-calendar-generate --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/education-cloud-academic-calendar-generate .claude/skills/education-cloud-academic-calendar-generate && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "education-cloud-academic-calendar-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/education-cloud-academic-calendar-generate into .claude/skills/education-cloud-academic-calendar-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "education-cloud-academic-calendar-generate", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/forcedotcom/sf-skills/tree/main/skills/education-cloud-academic-calendar-generateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add forcedotcom/sf-skills --skill education-cloud-academic-calendar-generate -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install forcedotcom/sf-skills education-cloud-academic-calendar-generate --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/education-cloud-academic-calendar-generate .agents/skills/education-cloud-academic-calendar-generate && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "education-cloud-academic-calendar-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/education-cloud-academic-calendar-generate into .agents/skills/education-cloud-academic-calendar-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "education-cloud-academic-calendar-generate", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill education-cloud-academic-calendar-generate -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install forcedotcom/sf-skills education-cloud-academic-calendar-generate --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/education-cloud-academic-calendar-generate .cursor/skills/education-cloud-academic-calendar-generate && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "education-cloud-academic-calendar-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/education-cloud-academic-calendar-generate into .cursor/skills/education-cloud-academic-calendar-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "education-cloud-academic-calendar-generate", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/forcedotcom/sf-skills.git --path skills/education-cloud-academic-calendar-generate--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add forcedotcom/sf-skills --skill education-cloud-academic-calendar-generate -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install forcedotcom/sf-skills education-cloud-academic-calendar-generate --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/education-cloud-academic-calendar-generate .gemini/skills/education-cloud-academic-calendar-generate && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "education-cloud-academic-calendar-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/education-cloud-academic-calendar-generate into .gemini/skills/education-cloud-academic-calendar-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "education-cloud-academic-calendar-generate", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install forcedotcom/sf-skills education-cloud-academic-calendar-generateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add forcedotcom/sf-skills --skill education-cloud-academic-calendar-generate -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/education-cloud-academic-calendar-generate .github/skills/education-cloud-academic-calendar-generate && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "education-cloud-academic-calendar-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/education-cloud-academic-calendar-generate into .github/skills/education-cloud-academic-calendar-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "education-cloud-academic-calendar-generate", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill education-cloud-academic-calendar-generate -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install forcedotcom/sf-skills education-cloud-academic-calendar-generate --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/education-cloud-academic-calendar-generate .opencode/skills/education-cloud-academic-calendar-generate && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "education-cloud-academic-calendar-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/education-cloud-academic-calendar-generate into .opencode/skills/education-cloud-academic-calendar-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "education-cloud-academic-calendar-generate", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
education-cloud-academic-calendar-generateA skill your agent uses to set up, create, or generate an academic calendar for Education Cloud orgs.
Education Cloud Academic Calendar Generate is an agent skill from forcedotcom/sf-skills. Use this skill to set up, create, or generate an academic calendar for Education Cloud orgs. Creates Academic Year, Academic Terms (semester/quarter/trimester), Academic Sessions, registration windows, and add/drop deadlines from natural language or documents. Validates date ranges and handles overlapping sessions, linking terms to the year and sessions to their term. TRIGGER when: user asks to "create an academic calendar", "set up semester dates", "generate the academic year", "add terms and sessions"…
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts and reference files (for example `examples/quarter-calendar.json`, `examples/sample-output.md` and `examples/semester-calendar.json`).
It sits in Documents & Office, covering Excel spreadsheets and CSV and tabular files. It works with Salesforce and Microsoft Excel. The repository describes itself as: Salesforce's curated collection of agent skills for building applications. Optimized for Agentforce Vibes, compatible with all AI tools. The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4bbae5c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Education Cloud Academic Calendar Generate loads about 4.4k tokens when it runs, and up to ~8.1k if it reads all its reference files. Until then it costs about 204 tokens; SKILL.md has 2,058 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from forcedotcom/sf-skills at commit 4bbae5c, republished under its Apache-2.0 licence (© forcedotcom). 2,058 words, ~4,361 tokens.
.claude/skills/education-cloud-academic-calendar-generate/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Create the foundational academic calendar infrastructure for Education Cloud orgs, parsing calendar data from documents or natural language and generating validated Academic Year, Term, and Session records with proper date ranges and institutional linkage.
All Salesforce operations use relative-path REST calls. Do not use CLI or shell commands to reach Salesforce (sf, sfdx, curl); the execution environment may not provide them. This does not apply to the skill's own local validation script (scripts/validate_calendar_dates.py, see step 4) — that runs locally and never touches the org.
POST /services/data/<ver>/sobjects/<Object>, GET /services/data/<ver>/sobjects/<Object>/<Id>, PATCH /services/data/<ver>/sobjects/<Object>/<Id>GET /services/data/<ver>/sobjects/<Object>/describe (confirm object + field API names exist before writing)./query is routable: GET /services/data/<ver>/query with the SOQL passed as a structured queryParams: {"q": "..."}, NOT inlined into the URL as ?q=... — confirmed by live test: inlining ?q= 404s (ROUTE_NOT_FOUND/NOT_FOUND) via headless-360 dispatch, while queryParams reliably 200s. Use it to list-scan for existing terms/sessions, or resolve records by the runtime Id captured at create time and read them back with a direct GET .../sobjects/<Object>/<Id> — either is valid.body.id — never hardcode a literal Salesforce Id.Gather or infer before proceeding:
If the user provides a calendar document (PDF, CSV, spreadsheet), parse it to extract all dates. If the user provides natural language, ask for specific dates before proceeding.
Note: AcademicYear, AcademicTerm, and AcademicSession have no Account reference field — calendar records are not linked to a Business Account. Linkage is Year → Term (AcademicYearId) and Term → Session (AcademicTermId) only.
Defaults unless specified:
GET /services/data/ (unversioned) via headless-360 dispatch. Response is a map of endpoint paths already resolved to the org's current max version (e.g. "limits": "/services/data/v69.0/limits") — not an array with a version field. Extract the version from any returned path (regex v\d+\.\d+) and use it as <ver> for every call below.GET /services/data/<ver>/limits via headless-360 dispatch. 2xx → route all calls through it. On absent/4xx/5xx → probe other available transports (other Salesforce MCP, authenticated sf CLI, custom MCP) with the same read, use first healthy, announce it. None healthy → stop, ask user to connect one; never fabricate.All steps are sequential. Do not skip or reorder. If blocked, stop and ask for missing context.
Verify foundation prerequisites — Follow references/foundation_prerequisites.md: org edition, Lightning Experience, Education Cloud license, running user's EDU access, Education Cloud Foundation enabled (self-heal via confirm-then-enable if off). Do not proceed to Step 1 until all checks pass.
Confirm calendar system
Gather calendar data
Verify object and field schema
GET /services/data/<ver>/sobjects/AcademicYear/describe, .../AcademicTerm/describe, .../AcademicSession/describefields array; match your intended field API names (Name, AcademicYearId, StartDate, EndDate, RegistrationOpenDate, RegistrationCloseDate, Season, AcademicTermId, ClassStartDate, ClassEndDate, AddDropDeadline) against it.Season (AcademicTerm.Season, values Fall/Spring/Summer/Winter): only send values present in that field's picklistValues. AcademicSession.Type is a different picklist (Semester/Trimester/Quarter/etc.) not used by this workflow — do not confuse it with Season.Validate date ranges
scripts/validate_calendar_dates.py, then run it once:python3 scripts/validate_calendar_dates.py <<'EOF'
{"academicYear": {...}, "terms": [...], "sessions": [...]}
EOFRegistrationCloseDate.valid is false: stop, report each entry in errors to the user, and ask for corrected dates. Do not proceed to step 5.warnings (e.g., intentional session overlaps) do not block — surface each one to the user for confirmation in step 6.computedRegistrationCloseDates forward — step 8 uses it instead of recalculating.Detect duplicate terms
Name is not unique-constrained, so a duplicate name will NOT error on insert. List-scan for existing terms with matching names before creating: GET /services/data/<ver>/query with queryParams: {"q": "SELECT Id, Name, StartDate, EndDate FROM AcademicTerm WHERE Name = 'Fall 2025'"} — pass the SOQL via queryParams, not inlined as ?q= in the URL (inlining 404s) — or, if the user has previously created a calendar for this year in the same session, reuse the Ids captured then instead of re-creating.Display proposed calendar structure and confirm
RegistrationCloseDate, then each session's name and dates grouped under its parent term. See examples/sample-output.md for a filled-in rendering.Create Academic Year record
POST /services/data/<ver>/sobjects/AcademicYear
{"Name": "Academic Year 2025-2026"}academicYearId from the response body.id for term linkageCreate Academic Term records
AcademicYearId set to academicYearId from step 7:POST /services/data/<ver>/sobjects/AcademicTerm
{"Name": "Fall 2025", "Season": "Fall", "StartDate": "2025-08-18", "EndDate": "2025-12-12",
"AcademicYearId": "<academicYearId>",
"RegistrationOpenDate": "2025-04-01", "RegistrationCloseDate": "2025-08-17"}RegistrationCloseDate comes from step 4's computedRegistrationCloseDates[<term name>] — do not recompute it by hand.Season is a restricted picklist: Fall, Spring, Summer, Winter. AcademicTerm has NO add/drop field — add/drop deadlines live on AcademicSession only.termId from the response body.id for session linkageCreate Academic Session records
AcademicTermId set to the parent termId from step 8:POST /services/data/<ver>/sobjects/AcademicSession
{"Name": "Summer Session 1", "ClassStartDate": "2026-05-26", "ClassEndDate": "2026-07-03",
"AddDropDeadline": "2026-06-11", "AcademicTermId": "<termId>"}Generate completion summary
examples/sample-output.md for a filled-in rendering.Available at any time after step 10, not a required workflow step — use only when the user asks to spot-check a record or view a calendar range.
GET /services/data/<ver>/sobjects/AcademicTerm/<termId> (returns all fields; do not use a ?fields= selector) — or, if the Id was not captured, look it up by name with GET /services/data/<ver>/query and queryParams: {"q": "SELECT Id FROM AcademicTerm WHERE Name = 'Fall 2025'"} (pass the SOQL via queryParams, not inlined as ?q= in the URL — inlining 404s). Display all field values in table format with parent hierarchy.GET /services/data/<ver>/sobjects/AcademicTerm/<termId> and GET /services/data/<ver>/sobjects/AcademicSession/<sessionId> — and display as a table (Record Type, Name, Start Date, End Date, Duration, Registration Open, Registration Close, Add/Drop). Calculate and display overlap periods if applicable. See examples/sample-output.md for a filled-in rendering.| Constraint | Rationale |
|---|---|
| Verify object + field API names via describe before writing | Prevents a failed POST on an unverified field; Season picklist values must match AcademicTerm.Season's picklistValues |
| Term end date must be after start date | Platform validation will reject invalid date ranges |
| Registration window must open before term starts | Students cannot register after classes begin |
| Add/drop deadline (on AcademicSession) after or equal to term start | Deadline before classes start is logically invalid; AcademicTerm has no add/drop field |
| Academic Year must span all its child terms | Term dates outside year range cause reporting issues |
| Overlapping sessions within same term are allowed | Common pattern for Summer sessions (e.g., Session 1: May-Jul, Session 2: Jun-Aug) |
| Term names should match calendar system convention | Fall/Spring/Summer for semester, Fall/Winter/Spring/Summer for quarter |
| Resolve API version dynamically, don't hardcode | Org's max API version changes over time; a stale hardcoded version drifts from the org's current one |
Check for duplicate terms via SOQL /query before creating, pass q via queryParams not inlined in the URL | /query is routable via headless-360, but only with queryParams — inlining ?q= 404s (confirmed by live test); term Name is not unique-constrained so duplicates do not error on insert; a failed duplicate-check read must block creation, not be skipped |
| Issue | Resolution |
|---|---|
| User provides relative dates ("next Fall") | Convert to absolute dates before inserting (e.g., "next Fall" → "Fall 2026" with specific dates) |
| Overlapping sessions flagged as error | Confirm with user — overlaps are intentional in many institutions (e.g., Summer Session 1 and 2 overlap by 1 week) |
| Duplicate term with different dates | Ask user whether to update existing or skip — do not auto-update without confirmation |
| Registration window after term start | This is invalid — ask user to provide correct registration open date |
| Academic Year end date before last term end date | Extend Academic Year to cover all terms, or adjust term dates |
| Input carries a term-level add/drop date but no session subdivisions | AcademicTerm has no add/drop field — surface the term-vs-session placement to the user or propose a session per term to carry the date; never write it onto AcademicTerm and never silently drop it |
| User provides 3-part year range (2025-2026-2027) | Clarify with user — Academic Year spans exactly 2 years (e.g., 2025-2026) |
| Session without parent term | Every session must link to a term — if user provides session dates without term, ask which term it belongs to |
Deliverables:
Terms link to the parent Academic Year (AcademicYearId); sessions link to the parent Term (AcademicTermId). These objects have no Account reference field.
| Need | Delegate to |
|---|---|
| Institutional hierarchy (Accounts, campuses) | No dedicated skill yet — set up manually |
| Course scheduling and offerings | Course offering generation skills |
| File | When to read |
|---|---|
references/foundation_prerequisites.md | Step 0 — org edition, Lightning Experience, EDU license, permission set assignment, Education Cloud Foundation enablement; run before Step 1 on every standalone invocation |
references/calendar-systems.md | When user's calendar system is unclear or non-standard |
references/date-validation.md | When validating complex date overlaps or multi-session terms |
examples/semester-calendar.json | To verify output structure for semester system |
examples/quarter-calendar.json | To verify output structure for quarter system |
examples/sample-output.md | To see filled-in renderings of the proposed-structure display, completion summary, and calendar-view table |
scripts/validate_calendar_dates.py | Invoked in step 4 to validate date ranges and compute RegistrationCloseDate deterministically |
© forcedotcom, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (scripts, references) in skills/education-cloud-academic-calendar-generate of forcedotcom/sf-skills.
Open the folder on GitHubat commit 4bbae5c
Education Cloud Academic Calendar Generate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Education Cloud Academic Calendar Generate this skillforcedotcom/sf-skills | 1.1k | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| Generate CodebookAperivue/medsci-skills | 333 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Document Converterwentorai/Research-Claw | 858 | — | ~1.3k | Automated safety check: Pass | Custom licence | |
| Excel Spreadsheet Creation and Editinganthropics/skills | 180k | 4 repos | ~2.1k | Automated safety check: Pass | Proprietary | |
| XLSXrvdbreemen/OTGW-firmware | 207 | 35 repos | ~2.9k | Automated safety check: Pass | Proprietary | |
| MinerU Document Readeropendatalab/MinerU | 81k | — | ~9.4k | Automated safety check: Warn | Custom licence |
Aperivue/medsci-skills
A skill your agent uses when a tabular dataset (CSV, Excel, Parquet, Stata, SAS) needs a data dictionary.
wentorai/Research-Claw
Convert Office documents (PPTX, DOCX, XLSX, PDF, HTML, CSV, JSON, XML, images) to Markdown using Microsoft MarkItDown.
anthropics/skills
Creates, edits and analyzes spreadsheets (.xlsx, .xlsm, .csv, .tsv) with openpyxl and pandas, writing live formulas and recalculating to confirm zero formula errors.
rvdbreemen/OTGW-firmware
Use this skill any time a spreadsheet file is the primary input or output.
opendatalab/MinerU
Reads, OCRs, searches and cites local documents through the mineru CLI, covering PDF, images, Office files, EPUB, HTML and CSV.
n8n-io/n8n
Load before calling data-tables or parse-file. An agent skill from n8n-io/n8n.
forcedotcom/sf-skills
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins.
forcedotcom/sf-skills
Data Cloud 360° view of a single Agentforce session. An agent skill from forcedotcom/sf-skills.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply SLDS-compliant UI using the correct blueprints, styling hooks, utility classes, and icons.
forcedotcom/sf-skills
Lightning Web Components with PICKLES methodology and 165-point scoring.
Works with
Categories
A skill your agent uses to set up, create, or generate an academic calendar for Education Cloud orgs. Education Cloud Academic Calendar Generate is an agent skill from forcedotcom/sf-skills. Use this skill to set up, create, or generate an academic calendar for Education Cloud orgs.
Education Cloud Academic Calendar Generate fits situations like: generate an academic calendar for Education Cloud orgs; : user asks to create an academic calendar; set up semester dates; generate the academic year.
Run `npx skills add forcedotcom/sf-skills --skill education-cloud-academic-calendar-generate -a claude-code`. Or copy the skill folder (skills/education-cloud-academic-calendar-generate in forcedotcom/sf-skills) into .claude/skills/education-cloud-academic-calendar-generate in your project. Claude Code loads it when a task matches its description.
Run `npx skills add forcedotcom/sf-skills --skill education-cloud-academic-calendar-generate -a codex`. Or copy the skill folder (skills/education-cloud-academic-calendar-generate in forcedotcom/sf-skills) into .agents/skills/education-cloud-academic-calendar-generate in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add forcedotcom/sf-skills --skill education-cloud-academic-calendar-generate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/education-cloud-academic-calendar-generate, .gemini/skills/education-cloud-academic-calendar-generate, .github/skills/education-cloud-academic-calendar-generate and .opencode/skills/education-cloud-academic-calendar-generate in your project.
Going by SKILL.md and its folder, Education Cloud Academic Calendar Generate needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Education Cloud Academic Calendar Generate is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Education Cloud Academic Calendar Generate: Generate Codebook (Aperivue/medsci-skills, 333 stars), Document Converter (wentorai/Research-Claw, 858 stars), Excel Spreadsheet Creation and Editing (anthropics/skills, 180k stars) and XLSX (rvdbreemen/OTGW-firmware, 207 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
forcedotcom (a GitHub organization) maintains it in forcedotcom/sf-skills, which has 1,067 GitHub stars. The repository holds 252 skills in this directory. The repository was last updated on October 9, 2026.
Source: forcedotcom/sf-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.