Skip to content

Repository files navigation

Tailspin Toys

Tailspin Toys is a crowdfunding platform for games with a developer theme. The project is a website for a fictional game crowd-funding company, with a Flask backend using SQLAlchemy and Astro frontend using Svelte for dynamic pages.

Using this template

This repository is a GitHub template. When you create a new repository from it, a one-time Bootstrap template issues workflow (.github/workflows/bootstrap-issues.yml) runs automatically on the first push to main and opens a set of starter issues describing suggested first features. Each issue is defined by a Markdown file in .github/bootstrap-issues/ — the first heading becomes the issue title and the remaining content becomes the body — so you can edit, add, or remove files there to control which issues are created.

The workflow only runs on repositories created from the template (the if: ${{ !github.event.repository.is_template }} guard skips the template itself), and after creating the issues it removes itself and the .github/bootstrap-issues/ folder in a cleanup commit so it never runs again.

Getting started

Install dependencies (Python venv, npm packages, Playwright Chromium) once with the setup script. It is idempotent and only installs what is missing or stale, so it is safe to re-run any time:

./scripts/setup-env.sh

Pass --force to reinstall everything, or --with-system-deps to also install Playwright's OS-level dependencies (Linux only; may require sudo). Use --scope <server|client|app|e2e|all> to limit the install to a subset of dependencies (for example --scope server installs only the Python venv).

Launch the site

./scripts/start-app.sh

Then navigate to the website to see the site!

Running tests

./scripts/run-server-tests.sh   # Flask unit tests
./scripts/run-e2e-tests.sh      # Playwright end-to-end tests

Each runner verifies its prerequisites and exits with a remediation message if anything is missing — it will never silently install dependencies on your behalf. Run ./scripts/setup-env.sh when prompted.

Linting

The frontend uses ESLint to enforce code quality across TypeScript, Astro, and Svelte files. Run it with:

./scripts/run-lint.sh

ESLint is also run automatically in CI on pull requests to main.

Copilot Agents & Skills

This project ships two Copilot customizations to assist with quality assurance:

PR Readiness Agent

The PR Readiness agent (.github/agents/pr-readiness.md) is a pre-PR quality gate. Invoke it before opening a pull request to:

  • Verify all acceptance criteria have been implemented
  • Audit test coverage and fill any gaps
  • Run the full verification suite (unit tests, lint, E2E tests)
  • Manually validate the feature in the browser via Playwright MCP (required for every run)
  • Produce a go/no-go report

quality-checks Skill

The quality-checks skill (.github/skills/quality-checks/SKILL.md) wraps the project's test and lint scripts with a detailed debugging and troubleshooting runbook. Use it via /quality-checks when:

  • Running tests or lint for the first time after setup
  • Diagnosing test failures (environment issues, port conflicts, flaky tests, CI divergence)
  • Validating readiness before commits, pushes, or merges

License

This project is licensed under the terms of the MIT open source license. Please refer to the LICENSE for the full terms.

Maintainers

You can find the list of maintainers in CODEOWNERS.

Support

This project is provided as-is, and may be updated over time. If you have questions, please open an issue.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages