Skip to content
Back to blog
IALaravelDevOps

Using GPT-6 Astra for longer GitHub Copilot tasks

A practical way to use GPT-6 Astra in Copilot for Laravel and Docker Compose changes that still require human review.

Ismael Catala7 min read

Delegation without turning work into a black box

Some changes are a poor fit for a single suggestion inside an editor. Adding a Laravel feature, updating migrations, covering the behavior with tests, and checking service startup in Compose means moving through several files and validating decisions along the way. For that kind of work, the useful part of GPT-6 Astra in GitHub Copilot is not the model name itself, but being able to select it when starting a cloud-agent task. (github.blog)

GitHub announced general availability for GPT-6 Astra on September 4, 2026. The model is listed as generally available in Copilot’s supported-model documentation, although availability in a particular account can still depend on rollout status and organization policies. Teams should check their own Copilot settings instead of assuming that every user will see it immediately. (github.blog)

The cloud agent runs in an ephemeral environment powered by GitHub Actions. It can inspect a repository, build an implementation plan, modify a branch, and run tests or linters that the project makes available. That does not remove the need for review, but it can take repetitive setup and validation work out of the manual path. (docs.github.com)

Pick the model where the task begins

Model selection is not exposed in every Copilot surface. GitHub documents it when assigning an issue to Copilot on GitHub.com, mentioning @copilot in a pull-request comment, or starting work from supported cloud-agent entry points such as the agents tab or agents panel. When there is no model picker, Copilot uses Auto. (docs.github.com)

My rule would be straightforward: choose GPT-6 Astra when the request has a bounded outcome but requires repository research, changes across multiple areas, and meaningful verification. For a variable rename, a small conditional fix, or an explanation, starting an autonomous session is often more overhead than doing the work directly. Delegation works better when it is not applied to every tiny task.

The picker is not a replacement for a clear brief. Before choosing a model, describe the expected behavior, the routes or services involved, and how the result should be checked. Repository instructions can give the agent useful context about how the project should be built, tested, and validated. (docs.github.com)

A practical Laravel assignment

For Laravel, a suitable agent task might be an incremental feature with integration tests and a check that the change still behaves correctly in the Compose development environment. The assignment should set boundaries: do not alter public contracts, do not add packages without a reason, and do not touch production files or secrets. It should also name the test command the repository accepts as the baseline check.

An issue description or a pull-request comment can look like this:

@copilot Implement status filtering for the orders index.
 
Follow the existing patterns in routes, controllers, and Feature tests.
Add or update the required tests and run:
 
php artisan test --testsuite=Feature --stop-on-failure
 
Do not change authentication or add dependencies. In the PR, explain
which files changed and which scenarios you validated.

Laravel documents php artisan test as a supported test runner, and it accepts options passed through to Pest or PHPUnit, including --testsuite and --stop-on-failure. Naming that exit condition reduces the chance that the agent treats “the code looks valid” as completion. A green test suite is still not proof that the business rule is the right one. (laravel.com)

Compose needs observable conditions too

For Compose infrastructure, “fix startup” is too vague. A better request states the symptom, identifies the dependent service, and asks for a reproducible validation step. Docker Compose supports service dependencies through depends_on, and it can wait for a health check with the service_healthy condition. (docs.docker.com)

This valid fragment is a useful baseline when asking the agent to inspect startup ordering. It is not a universal Laravel configuration, but it makes the expected relationship between services explicit:

services:
  app:
    build: .
    depends_on:
      db:
        condition: service_healthy
 
  db:
    image: postgres:18
    environment:
      POSTGRES_DB: app
      POSTGRES_USER: app
      POSTGRES_PASSWORD: change-me
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 10s
      timeout: 10s
      retries: 5
      start_period: 30s

In a real repository, I would not treat a plain-text password in an example as a final solution. The task should explicitly require the agent to preserve the project’s existing secret management and environment variables. It should also avoid changing images, versions, or ports unless those changes are part of the reported problem.

Reasoning level is another trade-off

For supported models, Copilot may show a second dropdown for reasoning level. GitHub describes this setting as control over how much time and effort a model spends reasoning before it responds; higher settings can help on difficult tasks, but they can take longer and use more AI credits. (docs.github.com)

I would not make the highest level the default. It is more appropriate for refactors with cross-cutting effects, hard-to-reproduce failures, or changes that require following a long chain from application code to tests and infrastructure. For routine, well-bounded work, normal reasoning and better instructions are usually the more sensible combination.

GitHub also recommends normal context and reasoning as the default, with larger settings reserved for genuinely complex work. That is a useful operating rule because it forces a cost decision before every issue becomes a long investigation. The model cannot know what level of effort makes sense for a repository unless scope and acceptance criteria make it clear. (docs.github.com)

The fine print matters

GPT-6 Astra does not make Copilot accountable for a change. The agent can make edits and open or prepare a pull request, but the team still has to inspect the diff, understand the trade-offs, and assess security, regression, and maintenance risks. GitHub also advises careful validation and review before generated code is incorporated into production. (docs.github.com)

The agent works within the repository where the task starts. It cannot modify multiple repositories in a single run, and its default context is also limited to that repository. If a Laravel application depends on a private package, a separate infrastructure repository, or internal documentation, the missing context has to be addressed deliberately. (docs.github.com)

There are access and administration limits as well. Cloud agent is available on paid Copilot plans, but Copilot Business and Enterprise users may need an administrator to enable the relevant policies, and repository owners can disable the feature. A launch post or screenshot is not evidence that a model is allowed in a particular organization. (github.blog)

There is an operational cost too. Cloud-agent sessions consume GitHub Actions minutes and AI credits based on the model and the tokens processed. Before assigning longer tasks, make sure the test pipeline is dependable, the environment can start without manual intervention, and the output will receive informed human review. (docs.github.com)

Define done in a way people can inspect

I would start with small but complete issues. A good first case has observable behavior, nearby tests, and a pull request that a reviewer can understand without relying on undocumented tribal knowledge. When the agent needs several rounds of clarification before starting, the issue is usually the problem rather than the model.

I would also keep implementation work separate from architecture decisions. The agent can research alternatives and propose a plan before changing code, but decisions that alter service boundaries, contracts, or data ownership deserve explicit approval. GitHub supports using the cloud agent to research, plan, and iterate before a pull request is created. (docs.github.com)

GPT-6 Astra makes sense when the goal is a reviewable first implementation of a task with real breadth, not automated technical judgment. In Laravel and Compose projects, that means asking for implementation, tests, and validation with clear boundaries, then treating the resulting pull request as work from a collaborator who still needs review. That is how the agent becomes useful without being given trust it has not earned.


Source: GitHub Changelog for GPT-6 Astra Official documentation: Changing the AI model for GitHub Copilot cloud agent