Copilot Instructions for Efficient Coding Agent Onboarding

High Level Details about the Codebase

Summary of the Repository

This repository contains a comprehensive suite of tools and scripts designed to streamline the development process for [Project Name]. The primary focus of this project is to provide a robust and efficient environment for developers to build, test, and deploy applications with ease.

High Level Repository Information

  • Repository Size: Approximately [X] kilobytes.
  • Project Type: [e.g., Open-source library, SaaS platform, Internal tool, etc.]
  • Languages Used: [e.g., Python, JavaScript, Java, etc.]
  • Frameworks and Libraries: [e.g., React, Django, Node.js, etc.]
  • Target Runtimes: [e.g., Node.js, Python 3.8, Java 11, etc.]

Build and Validation Instructions

Building and Running the Project

Bootstrap

To set up the development environment, follow these steps:

  1. Clone the repository: git clone [repository-url]
  2. Navigate to the project directory: cd [project-directory]
  3. Install dependencies: [dependency-installation-command]

Build

To build the project, execute the following command:
[build-command]

Ensure you are using the correct version of the build tool as specified in the build-requirements.txt file.

Test

Running tests can be done with the following command:
[test-command]

Run

To run the application, use the command:
[run-command]

Lint

Linting the codebase is performed using the following command:
[lint-command]

Validation Pipelines

Before committing changes, the following validation steps are executed:

  1. Continuous Integration Build: [CI-build-command]
  2. GitHub Workflows: Ensure to follow the workflows defined in .github/workflows/

Error Handling and Workarounds

When encountering errors, document them and attempt the following workarounds:

  • Clean the repository: npm cache clean --force
  • Reinstall dependencies: npm install

Environment Setup

Some optional steps are required for a complete setup, including:

  • Install global dependencies: [global-dependency-installation-command]

Timeouts and Command Sequences

Commands that frequently timeout include [command-that-times-out], which should be run during off-peak hours. Always run [command-to-prevent-timeout] before it.

Project Layout and Architecture

Major Architectural Elements

  • Main Project Files: Located at [path-to-main-project-files]
  • Configuration Files: Linting ([path-to-lint-config]), Compilation ([path-to-compile-config]), Testing ([path-to-test-config]), Preferences ([path-to-preferences-config])

Pre-Check-in Checks

  • GitHub Workflows: .github/workflows/
  • Continuous Integration Builds: [CI-build-command]

Key Files and Directories

  • Root Directory Files: [list-of-root-directory-files]
  • README.md: Provides an overview of the project and how to contribute.
  • Key Source Files: [list-of-key-source-files]
  • Subdirectory Files: [list-of-subdirectory-files]

Steps to Follow for Onboarding

  1. Inventory the Codebase:

    • Review README.md, CONTRIBUTING.md, and other documentation files.
    • Search for build steps and workarounds in the codebase.
    • Examine all scripts related to build and environment setup.
    • Analyze all build and action pipelines.
    • Document all project, configuration, and linting files.
  2. Document Commands and Information:

    • For each file, determine if its contents or existence are necessary for the coding agent to implement, build, test, validate, or demo changes.
    • If necessary, document the command or information in detail.
    • Indicate which commands work and which do not, and the order in which they should be run.
    • Record any errors encountered and the steps taken to workaround them.
  3. Additional Steps and Information:

    • Document any other steps or information that can help the agent reduce time spent exploring or running failed commands.
  4. Final Instruction:

    • Instruct the agent to trust the instructions provided and only perform a search if the information is incomplete or found to be in error.

By following these instructions, the coding agent should be able to efficiently navigate and contribute to the codebase with minimal guidance.