bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
Agent Skill for AI-assisted manuscript writing review, based on Dr. Kristin Sainani's "Writing in the Sciences" methodology.
SkillsPython · TeXGitHub @labarbaSelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Installable projects can be verified without a deployment domain. Use GitHub sign-in for a personal repository, or the repository verification file above for an organization repository.
Ask about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗An Agent Skill that reviews scientific and engineering manuscripts for writing quality, applying the methodology from Dr. Kristin Sainani's Writing in the Sciences course at Stanford.
Clear writing is not a cosmetic concern in science; it determines whether reviewers and readers can follow your argument. Yet most graduate students receive little formal training in scientific writing, and self-editing for clarity is difficult because you already know what you meant to say.
This skill encodes a systematic editorial review distilled from 30 video lectures on scientific writing, extended with Nature's guidance on structuring a summary paragraph. It works on anything from a whole manuscript to a single sentence, in six audit passes:
You can ask for a full review, a single section, a single pass ("check for passive voice"), an abstract review, or an interactive walk-through, paragraph by paragraph. Reports group repeated problems, tag each finding CRITICAL, MAJOR or MINOR, give its location, and show a concrete revision.
The skill does not alter scientific content, data, or claims, and it never makes a claim stronger or weaker on its own. It improves how your claims are delivered. It is not a substitute for technical peer review.
A skill is a folder (skills/sciwrite/) holding SKILL.md and two reference files the skill reads when it needs them. Most tools install the whole folder from the release ZIP or from this repository.
| Where you use AI | How to install |
|---|---|
| Claude (web, desktop, Cowork) | Upload the release ZIP under Customize → Skills |
| Claude Code | /plugin install sciwrite --marketplace labarba/sciwrite |
| ChatGPT | Upload the release ZIP under Skills (workspace plans) |
| Gemini app | Upload the release ZIP under Customize → Skills |
| Codex, Copilot, Cursor, Gemini CLI and other coding agents | gh skill install labarba/sciwrite sciwrite or npx skills add labarba/sciwrite |
| Any other tool | Paste the three skill files into its custom instructions |
The release ZIP is sciwrite-<version>.zip, attached to the latest release. It holds the sciwrite/ folder and nothing else. Don't use GitHub's green Code → Download ZIP button: that archive contains the whole repository. If Safari unzips the download into a folder, compress the sciwrite folder again (right-click → Compress) before uploading.
Steps and menus below were checked in October 2026. These products change often; if a menu has moved, the links to each vendor's help page have the current steps.
Upgrading from version 0.1? The skill was renamed from
manuscript-writing-reviewtosciwrite. Remove the old skill first, so the two don't compete.
The skill is then available in every chat and in Cowork, and it syncs to Claude Code when you're signed in with the same account. Skills are available on Free, Pro, Max, Team and Enterprise plans. See Use skills in Claude.
This repository is a Claude Code plugin marketplace. In a session, run:
/plugin install sciwrite --marketplace labarba/sciwrite
From your shell, the same works as claude plugin install sciwrite --marketplace labarba/sciwrite. These one-step commands need Claude Code 2.1.275 or later in a session, 2.1.292 or later in the shell; on older versions, run /plugin marketplace add labarba/sciwrite and then /plugin install sciwrite@sciwrite. Third-party marketplaces don't auto-update by default: to get a new version, run /plugin marketplace update sciwrite, or turn on auto-update for it in the Marketplaces tab of /plugin.
To install without the plugin system, copy the folder into your personal or project skills directory:
git clone https://github.com/labarba/sciwrite.git
cp -r sciwrite/skills/sciwrite ~/.claude/skills/
At the time of writing, OpenAI documents skills for workspace plans (Business, Enterprise, Edu, Healthcare), where an admin must allow skill uploads. Availability on personal plans was unclear, so check whether Skills appears in your account. Without it, use the "any other tool" method below in a Project's instructions. See Skills in ChatGPT.
Skills replace Gems in the Gemini app (announcement).
/ (or @) in a chat.Uploading works on the web and in the Mac app. You must be 18 or over, signed in, with Keep Activity on. To update to a new version, open the skill, choose More → Replace skill, and upload the new ZIP. Skills in Google Workspace apps are created separately from the Gemini app's and don't sync with them. See Create and manage skills for Gemini Apps.
Two command-line installers work across dozens of agents. With the GitHub CLI:
gh skill install labarba/sciwrite sciwrite --agent codex --scope user
Replace codex with your agent (github-copilot, cursor, gemini-cli, claude-code, …). Without --scope user, the skill installs into the current repository only.
Or with the skills CLI, which asks which agents to install for:
npx skills add labarba/sciwrite
If your tool has no skill support, paste the skill into whatever holds persistent instructions (a custom assistant, a project, a system prompt). Paste all three files, in this order: SKILL.md, references/section-guidance.md, and references/summary-paragraph.md. SKILL.md alone works for most reviews, but abstract reviews and section-level checks depend on the reference files.
Before installing any skill, read it. A skill is instructions that your AI tool will follow, and some skills include scripts. This one is plain Markdown with no scripts.
Ask in plain language, and paste your text or point to a file. For example:
Review the writing quality of draft.tex. I'm submitting to the Journal of Fluid Mechanics.Review the writing in my Introduction (sections/introduction.tex)Check my Results and Discussion for keyword consistency with MethodsIs my abstract too long for Nature? [paste abstract]Can you make this sentence less clunky? "[sentence]"Walk me through improving my Introduction, paragraph by paragraphIn a coding agent, the skill can also apply the revisions you accept (Apply the CRITICAL and MAJOR revisions to draft.tex); for LaTeX, it can suggest latexdiff to produce a marked-up copy for coauthors.
Tips
The skill encodes general principles. You can add conventions for your field or target journal as a new section in your copy of SKILL.md, for example:
## Journal-specific conventions
Target journal: Journal of Fluid Mechanics (JFM)
- Use "figure" (lowercase) in running text; "Figure" only at the start of a sentence.
- Equations are referenced as (1), not Eq. (1), unless at the start of a sentence.
- Use Oxford commas.
You can also edit the clutter and smothered-verb tables, the severity definitions, or the section guidance.
skills/sciwrite/
├── SKILL.md # the skill: modes, gotchas, the six passes, report format
├── references/
│ ├── summary-paragraph.md # Pass 6 and abstract-only rules, read when an abstract is reviewed
│ └── section-guidance.md # what each section must do, read in full and section reviews
└── evals/ # tests: output cases, answer key, trigger queries, baseline results
.claude-plugin/ # Claude Code plugin and marketplace manifests
tools/ # scripts that run and grade the tests
The tests run each case with and without the skill and grade the output against checkable assertions; see evals/README.md. For how the skill was made and revised, see HISTORY.md; for what changed in each version, the CHANGELOG.
If you find an edge case the skill handles poorly—a field-specific convention it misjudges, a clutter pattern it misses, or a false positive that keeps coming up—open an issue describing it, or submit a pull request. A new test case in evals/ that shows the problem is the most useful contribution of all.
If you use this skill in your work or teaching, please cite it using the information in CITATION.cff (GitHub's Cite this repository button formats it for you).
The software is archived on Zenodo. The DOI 10.5281/zenodo.23728600 always resolves to the latest version; version 1.0.0 is 10.5281/zenodo.23728601.
The skill, its reference files, the documentation and the test passages are licensed under CC BY 4.0: you are free to use, adapt, and share them, with attribution. The code (the Python scripts in tools/ and the GitHub Actions workflow) is licensed under the BSD 3-Clause License. Each code file says so in an SPDX-License-Identifier line at the top.
Developed as part of the course MAE 6291: Generative AI for Engineering Research at the George Washington University School of Engineering and Applied Science, and shared through the GW Engineering AI Academy. Pass 6 was contributed by Kyle Niemeyer.
The writing methodology is drawn from Dr. Kristin Sainani's Writing in the Sciences course at Stanford University. The original video lectures are available on YouTube under a CC BY license.
The summary paragraph structure in Pass 6 follows Nature's guide to authors, "How to construct a Nature summary paragraph" (September 2019). That document is the property of Springer Nature and is referenced here, not reproduced.